Este guia de início rápido mostra como configurar um serviço de RFC de multimédia em frente de um contentor do Cloud Storage. Pode usar esta configuração para testes ou como base para um ambiente de produção.
Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:
Esta página explica os seguintes procedimentos:
- Crie um contentor do Cloud Storage para armazenar o seu conteúdo.
- Ative os serviços necessários.
- Crie um recurso
EdgeCacheOrigin
para associar a RFC de multimédia ao seu contentor. - Crie um recurso
EdgeCacheService
para configurar o encaminhamento de pedidos e o armazenamento em cache para conteúdo na origem. - Teste se uma resposta está a ser colocada em cache.
Antes de começar
Certifique-se de que tem o seguinte:
Acesso à CDN de multimédia para o seu projeto atual.
A CLI do Google Cloud está instalada. Use a versão 345.0.0 ou posterior.
Se necessário, use
gcloud version
para verificar a versão egcloud components update
para atualizar a gcloud CLI instalada.A CLI gcloud fornece o grupo de subcomandos
gcloud edge-cache
para gerir configurações da RFC de multimédia novas e existentes.As autorizações da gestão de identidade e de acesso (IAM) necessárias para criar recursos da Media CDN.
Crie um contentor do Cloud Storage
O conteúdo da RFC de multimédia pode ter origem em localizações como um contentor do Cloud Storage, uma localização de armazenamento de terceiros ou um equilibrador de carga.
Neste início rápido, vamos armazenar conteúdo num contentor do Cloud Storage.
Crie um contentor do Cloud Storage acessível publicamente e atribua-lhe o nome
my-bucket
.Se preferir não tornar o seu contentor do Cloud Storage acessível publicamente, tem de conceder autorizações à RFC de multimédia para aceder ao contentor. Para mais informações, consulte o artigo Usar contentores privados do Cloud Storage.
Carregue um ficheiro para o contentor.
Ative os serviços necessários
Para configurar e implementar os serviços de CDN de multimédia, tem de ativar a API Network Services e a API Certificate Manager para o seu projeto.
Consola
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 a ativação e desativação de serviços, consulte a documentação de utilização de serviços.
Crie um recurso EdgeCacheOrigin
Crie uma origem que aponte para o seu contentor do Cloud Storage.
Consola
Na Google Cloud consola, aceda à página RFC de multimédia.
Clique no separador Origens.
Clique em Criar origem.
Introduza o nome da origem como
cloud-storage-origin
.Opcional: introduza uma descrição para a origem.
Para Endereço de origem, escolha Selecionar um contentor do Google Cloud Storage, procure o contentor do Cloud Storage com o nome
my-bucket
e, de seguida, clique em Selecionar.Se tiver uma origem externa, escolha Especificar um FQDN ou um endereço IP e, em seguida, introduza o FQDN ou o endereço IP.
Clique em Criar origem.
Após aproximadamente 10 minutos, o recurso EdgeCacheOrigin
criado recentemente
aparece na lista de origens no seu projeto na página Origens.
Para atualizar uma morada de origem, clique na origem e, de seguida, clique em
Editar.gcloud
Use o comando gcloud edge-cache origins create
:
gcloud edge-cache origins create ORIGIN \
--origin-address="ADDRESS"
Substitua o seguinte:
ORIGIN
: o nome da nova origemADDRESS
: o nome do contentor,gs://my-bucket
Se tiver uma origem externa, substitua
ADDRESS
pelo FQDN ou pelo endereço IP.
Para ver a origem recém-criada, use o comando
gcloud edge-cache origins list
.
Para atualizar a morada 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 o seguinte:
PARENT
: o recurso principal no formatoprojects/PROJECT/locations/global
ORIGIN_ID
: o nome abreviado da nova origemADDRESS
: o nome do contentor,gs://my-bucket
Se tiver uma origem externa, substitua
ADDRESS
pelo FQDN ou pelo endereço IP.
Para ver a origem recém-criada, use o
método edgeCacheOrigins.list
.
Para atualizar a morada de origem, use o método edgeCacheOrigins.patch
.
Terraform
Crie um recurso EdgeCacheService
A configuração do recurso EdgeCacheService
configura as definições de encaminhamento, certificado e colocação em cache e pode apontar para recursos EdgeCacheOrigin
.
Crie um recurso EdgeCacheService
básico que faça o seguinte:
- Coloca em cache todas as respostas da nossa origem configurada durante uma hora
- Define um cabeçalho de resposta
x-cache-status
que devolve o estado da cache (comoHIT
ouMISS
)
Opcionalmente, registe um nome de domínio para este serviço.
Consola
Na Google Cloud consola, aceda à página RFC de multimédia.
Clique no separador Serviços.
Clique em Criar serviço.
Introduza um nome exclusivo para o seu serviço, por exemplo,
my-service
, e, em seguida, clique em Seguinte.Na secção Encaminhamento, clique em Adicionar regra de anfitrião e, de seguida, introduza um ou mais nomes de domínios de anfitriões.
Para Anfitriões, introduza um nome de domínio do anfitrião, por exemplo,
web.example.com
.Clique em Adicionar regra de encaminhamento.
- Para Prioridade, especifique
1
. - Clique em Adicionar condição de correspondência. Para Correspondência do caminho, especifique
/
e, de seguida, clique em Concluído. - Selecione Obter a partir de uma origem e, de seguida, selecione a origem que configurou.
- Clique em Ações de suplementos.
- Para Ação do cabeçalho, clique em Adicione um item. Em seguida, faça o seguinte:
- Para Tipo, selecione Cabeçalhos de resposta a adicionar.
- Clique em Adicionar cabeçalho.
- Para Nome, especifique
x-cache-status
e, para Valor, especifique{cdn_cache_status}
. - Clique em Concluído.
- Para a ação de trajeto, clique em Adicione um item. Em seguida, faça o seguinte:
- Para Tipo, selecione Política de RFC.
- Para o Modo de cache, selecione FORCE_CACHE_ALL.
- Clique em Concluído.
- Clique em Guardar.
- Para Prioridade, especifique
Clique em Criar serviço.
O recurso EdgeCacheService
criado recentemente aparece na página Serviços
na lista de serviços no seu projeto.
gcloud
No Cloud Shell, use um editor de texto para criar um ficheiro local denominado
my-service.yaml
.Um ficheiro deste tipo indica o seguinte:
- Como funciona o encaminhamento: primeiro, faz a correspondência do anfitrião e, em seguida, do caminho
- Como funciona o armazenamento em cache, com base no modo de cache e no TTL
- Como os pedidos e as respostas são modificados, por exemplo, através da inserção da variável
cdn_cache_status
num cabeçalho de resposta
Cole o seguinte conteúdo de exemplo no ficheiro e, em seguida, guarde-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 o seguinte:
SERVICE
: nome do serviçoDOMAIN
: o domínio do novo serviçoSe especificar o nome do domínio, a RFC responde com um erro
404
para outros anfitriões.ORIGIN
: o nome da origem relacionada
Use o comando com o ficheiro YAML:
gcloud edge-cache services import
gcloud edge-cache services import SERVICE \ --source=my-service.yaml
Para ver o serviço recém-criado na lista de
EdgeCacheService
recursos no 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 o seguinte:
PARENT
: o recurso principal no formatoprojects/PROJECT/locations/global
SERVICE_ID
: o nome do serviçoDOMAIN
: o domínio do novo serviçoSe especificar o nome do domínio, a RFC responde com um erro
404
para outros anfitriões.ORIGIN_NAME
: o nome da origem relacionada
Para ver o serviço recém-criado na lista de EdgeCacheService
recursos
no seu projeto, use o
método edgeCacheServices.list
.
Terraform
A criação do primeiro serviço pode demorar vários minutos. A RFC de multimédia aprovisiona endereços IP dedicados e envia a sua configuração para milhares de localizações periféricas. As atualizações subsequentes a um serviço, como a alteração de uma configuração de rota ou de parâmetros correspondentes, são mais rápidas.
Recupere os endereços IP
Para ver os endereços IP do serviço recém-criado, siga estes passos:
Consola
Na Google Cloud consola, aceda à página RFC de multimédia.
Clique no separador Serviços.
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 seu 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 diminutivo do serviço.
Os detalhes obtidos incluem os endereços IP atribuídos ao serviço:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
Teste se uma resposta está a ser colocada em cache
Antes de testar o serviço, certifique-se de que tem conteúdo armazenável em cache armazenado na sua origem para que a RFC possa obtê-lo.
Para testar se o seu serviço está configurado corretamente para colocar conteúdo em cache, use a ferramenta de linha de comandos curl
para emitir pedidos e verificar as respostas. curl
também está disponível no Cloud Shell na Google Cloud consola.
Se quiser usar o EdgeCacheService
com o seu domínio,
pode atribuir o endereço IP do EdgeCacheService
a um registo de domínio. Para ver
instruções, consulte o artigo Configure o seu domínio através do Cloud DNS.
Depois de configurar o domínio, aceda ao conteúdo com o seguinte comando:curl
curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"
Se não configurou o DNS para apontar para os seus endereços IP aprovisionados, use a opção resolve
para substituir o endereço que o curl
usa.
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"
Substitua o seguinte:
DOMAIN_NAME
: o domínio anfitrião que especificou 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 ficheiro que carregou para o contentor
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 estado miss
, porque a RFC não tem os dados pedidos já obtidos da origem:
< HTTP/2 200 OK
...
< x-cache-status: den;miss
...
Quando envia o mesmo pedido novamente qualquer número de vezes, produz um resultado semelhante ao seguinte, com o estado hit
:
< HTTP/2 200 OK
...
< x-cache-status: den;hit
...
Se não for apresentado o estado hit
, verifique o seguinte:
- A resposta é armazenável em cache.
- O modo de cache configurado permite o armazenamento em cache do conteúdo.
- A origem não está a definir diretivas de cache que impeçam a colocação em cache. Para mais informações, consulte o artigo Configuração da cache.
Já testou um recurso básico EdgeCacheService
que pode publicar conteúdo a nível global. Um serviço de 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: limpe
Elimine todos os recursos que não pretende usar novamente.
Consola
Na Google Cloud consola, aceda à página RFC de multimédia.
Clique no separador Serviços.
Selecione o serviço e, de seguida, clique em Eliminar.
Clique no separador Origens.
Selecione a origem e, de seguida, clique em Eliminar.
gcloud
Para listar os recursos que criou, use o comando
gcloud edge-cache origins list
e o comandogcloud edge-cache services list
.Para eliminar 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 eliminar 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 criou, use o método
edgeCacheServices.list
e o métodoedgeCacheOrigins.list
.Para eliminar 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 diminutivo do serviço.Para eliminar 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 diminutivo da origem.
Repita este processo para quaisquer outros recursos que tenha criado e que não pretenda usar novamente, como o contentor do Cloud Storage.
O que se segue?
- Emitir e anexar um certificado SSL (TLS)
ao seu
EdgeCacheService
. - Veja registos de pedidos com os Registos na nuvem.
- Configure pedidos assinados para proteger o seu conteúdo.
- Otimize as chaves de cache e os TTLs e melhore as taxas de acerto da cache.
- Configure a correspondência de rotas avançada e crie origens adicionais.