Configurar um serviço do CDN de mídia

Neste guia de início rápido, mostramos como configurar um serviço do Media CDN para um bucket do Cloud Storage. Você pode usar essa configuração para testes ou a base de um ambiente de produção.


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Esta página mostra os seguintes procedimentos:

  1. Crie um bucket do Cloud Storage para armazenar seu conteúdo.
  2. Ative os serviços necessários.
  3. Crie um recurso EdgeCacheOrigin para conectar o Media CDN ao seu bucket.
  4. Crie um recurso EdgeCacheService para configurar o roteamento de solicitações e armazenamento em cache de conteúdo na origem.
  5. 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; Usar a versão 345.0.0 ou mais tarde.

    Se necessário, use gcloud version para verificar a versão e gcloud 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 Media CDN do Google Cloud. CDN de mídia tem os seguintes papéis predefinidos do IAM:

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer

Criar um bucket do Cloud Storage

O conteúdo do Media CDN pode se originar de locais como um um bucket do Cloud Storage, um local de armazenamento de terceiros ou um arquivo de carga.

Neste guia de início rápido, vamos armazenar o conteúdo em um bucket do Cloud Storage.

  1. Crie um bucket do Cloud Storage acessível publicamente e nomeie-a como my-bucket.

    Se você preferir não tornar o bucket do Cloud Storage publicamente é necessário conceder permissões do Media CDN para acessar o do Google Cloud. Para mais informações, consulte Como usar buckets particulares do Cloud Storage.

  2. 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 o seu projeto.

Console

  1. Ative a API Network Services.

    Ativar a API

  2. Ative a API Certificate Manager.

    Ativar a API

gcloud

  1. Ative a API Network Services:

    gcloud services enable networkservices.googleapis.com
    
  2. 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

  1. No console do Google Cloud, acesse a página Media CDN.

    Acesse Media CDN

  2. Clique na guia Origens.

  3. Clique em Criar origem.

  4. Digite o nome da origem como cloud-storage-origin.

  5. Opcional: digite uma descrição para a origem.

  6. 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 IP endereço IP e insira o endereço IP ou FQDN.

  7. 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 depois 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 visualizar 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 formato. projects/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 visualizar 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

resource "google_network_services_edge_cache_origin" "default" {
  name           = "cloud-storage-origin"
  origin_address = "gs://my-bucket-${random_id.unique_suffix.hex}"
}

Criar um recurso EdgeCacheService

O recurso EdgeCacheService configura o roteamento, o certificado e o 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 (como HIT ou MISS)

Opcionalmente, registre um nome de domínio para este serviço.

Console

  1. No console do Google Cloud, acesse a página Media CDN.

    Acesse Media CDN

  2. Clique na guia Services.

  3. Clique em Criar serviço.

  4. Digite um nome exclusivo para o serviço (por exemplo, my-service) e clique em Avançar.

  5. Na seção Roteamento, clique em Adicionar regra de host e digite uma ou mais nomes de domínio de host.

  6. Em Hosts, insira um nome de domínio de host, por exemplo, web.example.com.

  7. Clique em Adicionar regra de rota.

    1. Em Prioridade, especifique 1.
    2. Clique em Adicionar condição de correspondência. Em Correspondência de caminho, especifique / e clique em Concluído.
    3. Selecione Buscar em uma origem e, em seguida, selecione a origem que você configurou.
    4. Clique em Ações de complemento.
    5. Em Ação do cabeçalho, clique em Adicionar um item. Em seguida, siga estas etapas:
      1. Em Tipo, selecione Cabeçalhos de resposta a serem adicionados.
      2. Clique em Adicionar cabeçalho.
      3. Em Nome, especifique x-cache-status. Em Valor, especifique também. {cdn_cache_status}.
      4. Clique em Concluído.
    6. Em Rota de ação, clique em Adicionar um item. Em seguida, siga estas etapas:
      1. Em Tipo, selecione Política de CDN.
      2. Em Modo de cache, selecione FORCE_CACHE_ALL.
      3. Clique em Concluído.
    7. Clique em Salvar.
  8. Clique em Criar serviço.

O recurso EdgeCacheService recém-criado aparece na página Serviços na lista de serviços do projeto.

gcloud

  1. 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 solicitações e respostas são modificadas, por exemplo, inserindo a variável cdn_cache_status em um cabeçalho de resposta
  2. 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 404 erro para outros hosts. * ORIGIN: o nome da origem relacionada.

  3. Use o comando gcloud edge-cache services import. com o arquivo .yaml:

    gcloud edge-cache services import SERVICE \
        --source=my-service.yaml
    

    Para acessar o serviço recém-criado na lista de EdgeCacheService recursos em seu projeto, use o comando gcloud 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 formato. projects/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 visualizar o serviço recém-criado na lista de recursos EdgeCacheService em seu projeto, use o método edgeCacheServices.list.

Terraform

resource "google_network_services_edge_cache_service" "default" {
  name = "cloud-media-service"
  routing {
    host_rule {
      hosts        = ["googlecloudexample.com"]
      path_matcher = "routes"
    }
    path_matcher {
      name = "routes"
      route_rule {
        description = "a route rule to match against"
        priority    = 1
        match_rule {
          prefix_match = "/"
        }
        origin = google_network_services_edge_cache_origin.default.name
        route_action {
          cdn_policy {
            cache_mode  = "CACHE_ALL_STATIC"
            default_ttl = "3600s"
          }
        }
        header_action {
          response_header_to_add {
            header_name  = "x-cache-status"
            header_value = "{cdn_cache_status}"
          }
        }
      }
    }
  }
}

A criação do primeiro serviço pode levar vários minutos. O Media CDN provisiona endereços IP dedicados e envia em milhares de locais de borda. As atualizações subsequentes em um serviço como alterar uma configuração de rota ou parâmetros correspondentes, 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

  1. No console do Google Cloud, acesse a página Media CDN.

    Acesse Media CDN

  2. Clique na guia Services.

  3. 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 permissão para armazenar em cache conteúdo armazenado na sua origem, de modo que O Media CDN pode recuperá-la.

Para testar se seu 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.

Se você quiser usar EdgeCacheService com seu domínio, é possível atribuir o endereço IP de EdgeCacheService a um registro de domínio. Para Para mais instruções, acesse Configurar seu domínio usando o Cloud DNS. Depois de configurar o domínio, acesse o conteúdo com os seguintes curl comando:

curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"

Se você não tiver configurado o DNS para apontar para seus endereços IP provisionados, use 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ço
  • IP_ADDRESS: o endereço IP do serviço como visível na coluna Endereços na lista de serviços
  • FILE_NAME: o nome do arquivo em que você fez o upload. o 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 a status miss, porque o Media CDN não tem o valor solicitado dados 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 a esta, 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ê já testou um recurso EdgeCacheService básico que pode exibir conteúdo em todo o mundo. Um serviço no nível de produção pode precisar de SSL (TLS) certificados, 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

  1. No console do Google Cloud, acesse a página Media CDN.

    Acesse Media CDN

  2. Clique na guia Services.

  3. Selecione o serviço e clique em Excluir.

  4. Clique na guia Origens.

  5. Selecione sua origem e clique em Excluir.

gcloud

  1. Para listar os recursos que você criou, use o Comando gcloud edge-cache origins list e o comando gcloud edge-cache services list.

  2. 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.

  3. 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

  1. Para listar os recursos que você criou, use o Método edgeCacheServices.list e o método edgeCacheOrigins.list.

  2. 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.

  3. Para excluir a origem, use o Método edgeCacheOrigins.delete:

    DELETE https://networkservices.googleapis.com/v1/ORIGIN
    

    Substitua ORIGIN pelo nome completo do 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