Neste guia de início rápido, mostramos como configurar um serviço do Media CDN na frente de um bucket do Cloud Storage. Use essa configuração para testes ou como base para um ambiente de produção.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:
Esta página mostra os seguintes procedimentos:
- Crie um bucket do Cloud Storage para armazenar seu conteúdo.
- Ative os serviços necessários.
- Crie um recurso
EdgeCacheOrigin
para conectar o Media CDN ao seu bucket. - Crie um recurso
EdgeCacheService
para configurar o roteamento e o armazenamento em cache de solicitações para o conteúdo na origem. - Testar se uma resposta está sendo armazenada em cache.
Antes de começar
Verifique se você tem os recursos a seguir:
Acesso ao Media CDN do seu projeto atual.
a Google Cloud CLI instalada; Use a versão 345.0.0 ou mais recente.
Se necessário, use
gcloud version
para verificar a versão egcloud components update
para atualizar a CLI gcloud instalada.A CLI gcloud fornece o grupo de subcomandos
gcloud edge-cache
para gerenciar configurações novas e atuais do Media CDN.As permissões do Identity and Access Management (IAM) necessárias para criar recursos do Media CDN. O Media CDN tem os seguintes papéis predefinidos do IAM:
roles/networkservices.edgeCacheAdmin
roles/networkservices.edgeCacheUser
roles/networkservices.edgeCacheViewer
Produzir um bucket do Cloud Storage
O conteúdo do Media CDN pode se originar de locais como um bucket do Cloud Storage, um local de armazenamento de terceiros ou um balanceador de carga.
Neste guia de início rápido, vamos armazenar o conteúdo em um bucket do Cloud Storage.
Crie um bucket do Cloud Storage acessível publicamente e nomeie-o como
my-bucket
.Se preferir não tornar o bucket do Cloud Storage acessível publicamente, conceda permissões do Media CDN para acessar o bucket. Para mais informações, consulte Como usar buckets particulares do Cloud Storage.
Faça upload de um arquivo no bucket.
Ative os serviços necessários
Para configurar e implantar serviços do Media CDN, você precisa ativar a API Network Services e a API Certificate Manager para seu projeto.
Console
Ative a API Network Services.
Ative a API Certificate Manager.
gcloud
Ative a API Network Services:
gcloud services enable networkservices.googleapis.com
Ative a API Certificate Manager:
gcloud services enable certificatemanager.googleapis.com
Para mais informações sobre como ativar e desativar serviços, consulte a documentação do Service Usage.
Criar um recurso EdgeCacheOrigin
Crie uma origem que aponte para o bucket do Cloud Storage.
Console
No console do Google Cloud, acesse a página Media CDN.
Clique na guia Origens.
Clique em Criar origem.
Digite o nome da origem como
cloud-storage-origin
.Opcional: digite uma descrição para a origem.
Em Endereço de origem, escolha Selecionar um bucket do Google Cloud Storage, procure o bucket do Cloud Storage chamado
my-bucket
e clique em Selecione.Se você tiver uma origem externa, escolha Especificar um FQDN ou endereço IP e insira o FQDN ou o endereço IP.
Clique em Criar origem.
Após aproximadamente 10 minutos, o recurso EdgeCacheOrigin
recém-criado
aparece na lista de origens do seu projeto na página Origens.
Para atualizar um endereço de origem, clique na origem e em
Editar.gcloud
Use o comando gcloud edge-cache origins create
:
gcloud edge-cache origins create ORIGIN \
--origin-address="ADDRESS"
Substitua:
ORIGIN
: o nome da nova origem.ADDRESS
: o nome do bucket,gs://my-bucket
.Se você tiver uma origem externa, substitua
ADDRESS
pelo FQDN ou endereço IP.
Para ver a origem recém-criada, use o
comando gcloud edge-cache origins list
.
Para atualizar o endereço de origem, use o
comando gcloud edge-cache origins update
.
API
Use o
método edgeCacheOrigins.create
.
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID { "name": "ORIGIN_ID", "originAddress: "ADDRESS" }
Substitua:
PARENT
: o recurso pai no formatoprojects/PROJECT/locations/global
.ORIGIN_ID
: o nome curto da nova origem.ADDRESS
: o nome do bucket,gs://my-bucket
.Se você tiver uma origem externa, substitua
ADDRESS
pelo FQDN ou endereço IP.
Para ver a origem recém-criada, use o
método edgeCacheOrigins.list
.
Para atualizar o endereço de origem, use o método edgeCacheOrigins.patch
.
Terraform
Criar um recurso EdgeCacheService
O recurso EdgeCacheService
define as configurações de roteamento, certificado e armazenamento em cache
e pode apontar para recursos EdgeCacheOrigin
.
Crie um recurso EdgeCacheService
básico que faça o seguinte:
- Armazena em cache todas as respostas da origem configurada por uma hora.
- Define um cabeçalho de resposta
x-cache-status
que retorna o status do cache (comoHIT
ouMISS
).
Opcionalmente, registre um nome de domínio para este serviço.
Console
No console do Google Cloud, acesse a página Media CDN.
Clique na guia Services.
Clique em Criar serviço.
Digite um nome exclusivo para o serviço (por exemplo,
my-service
) e clique em Avançar.Na seção Roteamento, clique em Adicionar regra de host e insira um ou mais nomes de domínio de host.
Em Hosts, insira um nome de domínio de host, por exemplo,
web.example.com
.Clique em Adicionar regra de rota.
- Em Prioridade, especifique
1
. - Clique em Adicionar condição de correspondência. Em Correspondência de caminho, especifique
/
e clique em Concluído. - Selecione Buscar em uma origem e, em seguida, selecione a origem que você configurou.
- Clique em Ações de complemento.
- Em Ação do cabeçalho, clique em Adicionar um item. Em seguida, siga estas etapas:
- Em Tipo, selecione Cabeçalhos de resposta a serem adicionados.
- Clique em Adicionar cabeçalho.
- Em Nome, especifique
x-cache-status
e em Valor, especifique{cdn_cache_status}
. - Clique em Concluído.
- Em Rota de ação, clique em Adicionar um item. Em seguida, siga estas etapas:
- Em Tipo, selecione Política de CDN.
- Em Modo de cache, selecione FORCE_CACHE_ALL.
- Clique em Concluído.
- Clique em Salvar.
- Em Prioridade, especifique
Clique em Criar serviço.
O recurso EdgeCacheService
recém-criado aparece na página Serviços
da lista de serviços do seu projeto.
gcloud
No Cloud Shell, use um editor de texto para criar um arquivo local chamado
my-service.yaml
.Esse arquivo indica o seguinte:
- Como funciona o roteamento: primeiro correspondendo o host e, em seguida, o caminho
- Como funciona o armazenamento em cache (com base no modo de cache e no TTL)
- como as solicitações e respostas são modificadas, por exemplo, pela inserção
da variável
cdn_cache_status
em um cabeçalho de resposta;
Cole o conteúdo de exemplo a seguir no arquivo e salve-o:
name: SERVICE routing: hostRules: - hosts: - DOMAIN pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 1 matchRules: - prefixMatch: / origin: ORIGIN routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s headerAction: responseHeadersToAdd: - headerName: "x-cache-status" headerValue: "{cdn_cache_status}"
Substitua:
SERVICE
: nome do serviço.DOMAIN
: o domínio do novo serviço.
Se você especificar o nome de domínio, o Media CDN responderá com um erro
404
para outros hosts. *ORIGIN
: o nome da origem relacionada.Use o comando
gcloud edge-cache services import
com o arquivo.yaml
:gcloud edge-cache services import SERVICE \ --source=my-service.yaml
Para ver o serviço recém-criado na lista de recursos
EdgeCacheService
do seu projeto, use o comandogcloud edge-cache services list
.
API
Use o
método edgeCacheServices.create
.
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_ID { "name": "SERVICE_ID", "routing": { "hostRules": [ { "hosts": ["DOMAIN"], "pathMatcher": "routes" } ], "pathMatchers": [ { "name": "routes", "routeRules": [ { "priority": "1", "matchRules": [ { "prefixMatch": "/" } ], "origin": "ORIGIN", "routeAction": { "cdnPolicy": { "cacheMode": "CACHE_ALL_STATIC", "defaultTtl": "3600s" } } "headerAction": { "responseHeadersToAdd": [ { "headerName": "x-cache-status", "headerValue": "{cdn_cache_status}" } ] }, } ] } ] } }
Substitua:
PARENT
: o recurso pai no formatoprojects/PROJECT/locations/global
.SERVICE_ID
: o nome do serviço.DOMAIN
: o domínio do novo serviço.Se você especificar o nome de domínio, o Media CDN responderá com um erro
404
para outros hosts.ORIGIN_NAME
: o nome da origem relacionada
Para ver o serviço recém-criado na lista de recursos EdgeCacheService
do seu projeto, use o
método edgeCacheServices.list
.
Terraform
A criação do primeiro serviço pode levar vários minutos. O Media CDN provisiona endereços IP dedicados e envia sua configuração para milhares de locais de borda. As atualizações subsequentes em um serviço, como alteração de uma configuração de rota ou correspondência de parâmetros, são mais rápidas.
Recuperar os endereços IP
Para ver os endereços IP do serviço recém-criado, siga estas etapas:
Console
No console do Google Cloud, acesse a página Media CDN.
Clique na guia Services.
Para os endereços IP do seu serviço, consulte a célula Endereços.
Se a célula estiver vazia, atualize o navegador.
gcloud
Use o comando gcloud edge-cache services describe
:
gcloud edge-cache services describe SERVICE
Substitua SERVICE pelo nome do serviço.
A saída mostra os endereços IP atribuídos ao serviço:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...
API
Use o
método edgeCacheServices.get
.
GET https://networkservices.googleapis.com/v1/SERVICE_NAME
Substitua SERVICE_NAME
pelo nome completo do
serviço. Use o seguinte formato:
projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
Substitua SERVICE_ID
pelo nome curto do serviço.
Os detalhes recuperados incluem os endereços IP atribuídos ao serviço:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
Testar se uma resposta está sendo armazenada em cache
Antes de testar o serviço, verifique se você tem conteúdo armazenado em cache na sua origem para que o Media CDN possa recuperá-lo.
Para testar se o serviço está configurado corretamente para armazenar conteúdo em cache, use
a ferramenta de linha de comando curl
para emitir solicitações e verificar as respostas. curl
também está disponível no Cloud Shell no console do Google Cloud.
Para usar o EdgeCacheService
com seu domínio,
é possível atribuir o endereço IP de EdgeCacheService
a um registro de domínio. Para instruções, acesse Configurar seu domínio usando o Cloud DNS.
Depois de configurar o domínio, acesse o conteúdo com o seguinte comando curl
:
curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"
Se você não configurou o DNS para apontar para os endereços IP provisionados, use a opção resolve
para substituir o endereço usado por curl
.
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"
Substitua:
DOMAIN_NAME
: o domínio do host especificado ao criar o serviçoIP_ADDRESS
: o endereço IP do serviço, conforme visível na coluna Endereços na lista de serviçosFILE_NAME
: o nome do arquivo que você enviou ao bucket
Exemplo:
curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"
Inicialmente, o comando produz uma saída semelhante à seguinte, com o
status miss
, porque o Media CDN não tem os dados
solicitados já recuperados da origem:
< HTTP/2 200 OK
...
< x-cache-status: den;miss
...
Quando você envia a mesma solicitação novamente qualquer número de vezes, ela produz uma
saída semelhante à seguinte, com o status hit
:
< HTTP/2 200 OK
...
< x-cache-status: den;hit
...
Se ele não mostrar o status hit
, verifique o seguinte:
- A resposta pode ser armazenada em cache.
- O modo de cache configurado permite o armazenamento em cache do conteúdo.
- A origem não está definindo diretivas de cache que impedem o armazenamento em cache. Para mais informações, consulte Configuração de cache.
Você testou um recurso básico de EdgeCacheService
que pode veicular
conteúdo globalmente. Um serviço no nível de produção pode precisar de certificados
SSL (TLS), várias origens e uma
política de segurança do Google Cloud Armor.
Opcional: limpar
Exclua todos os recursos que você não pretende usar novamente.
Console
No console do Google Cloud, acesse a página Media CDN.
Clique na guia Services.
Selecione o serviço e clique em Excluir.
Clique na guia Origens.
Selecione sua origem e clique em Excluir.
gcloud
Para listar os recursos que você criou, use o comando
gcloud edge-cache origins list
e o comandogcloud edge-cache services list
.Para excluir o serviço, use o comando
gcloud edge-cache services delete
:gcloud edge-cache services delete SERVICE
Substitua
SERVICE
pelo nome do serviço.Para excluir a origem, use o comando
gcloud edge-cache origins delete
:gcloud edge-cache origins delete ORIGIN
Substitua
ORIGIN
pelo nome da origem.
API
Para listar os recursos que você criou, use os métodos
edgeCacheServices.list
eedgeCacheOrigins.list
.Para excluir o serviço, use o método
edgeCacheServices.delete
:DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
Substitua
SERVICE_NAME
pelo nome completo do serviço. Use o seguinte formato:projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
Substitua
SERVICE_ID
pelo nome curto do serviço.Para excluir a origem, use o método
edgeCacheOrigins.delete
:DELETE https://networkservices.googleapis.com/v1/ORIGIN
Substitua
ORIGIN
pelo nome completo da origem. Use o seguinte formato:projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
Substitua
ORIGIN_ID
pelo nome curto da origem.
Repita esse processo para todos os outros recursos que você criou e não pretende usar novamente, como o bucket do Cloud Storage.
A seguir
- Emita e anexe um certificado SSL (TLS)
ao
EdgeCacheService
. - Veja os registros de solicitação com o Cloud Logging.
- Configure solicitações assinadas para proteger seu conteúdo.
- Otimize as chaves de cache e TTLs e melhore as taxas de ocorrência em cache.
- Configure a correspondência de rota avançada e crie outras origens.