Para os serviços do Cloud Run, por padrão, o Cloud Run faz downgrade das solicitações HTTP/2 para HTTP/1 quando elas são enviadas ao contêiner. Se você quiser definir explicitamente que o serviço use HTTP/2 de ponta a ponta, sem esse downgrade, configure-o para HTTP/2. Nesta página, mostramos como fazer a configuração.
Para mais informações sobre como invocar serviços usando HTTP, consulte Como invocar com uma solicitação HTTPS.
Antes de configurar
Seu serviço do Cloud Run precisa processar solicitações
no formato de texto não criptografado HTTP/2
(h2c
). A infraestrutura de serviços de front-end
do Google encerra o TLS e encaminha o tráfego h2c
para o Cloud Run
e o contêiner por meio de um canal criptografado.
Para confirmar que o serviço é compatível com solicitações h2c
,
teste o serviço localmente usando este comando cURL:
curl -i --http2-prior-knowledge http://localhost:PORT
Funções exigidas
Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Desenvolvedor do Cloud Run (
roles/run.developer
) no serviço Cloud Run -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs do Google Cloud, como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Como definir e atualizar HTTP/2 de ponta a ponta
Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.
É possível especificar o uso do HTTP/2 de ponta a ponta usando o Console do Google Cloud, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:
Console
No console do Google Cloud, acesse o Cloud Run:
Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, redes e segurança para expandir essa página.
Clique na guia Rede.
- Marque a caixa de seleção Ativar conexões http/2
Clique em Criar ou Implantar.
gcloud
É possível atualizar um determinado serviço para usar HTTP/2 usando o seguinte comando:
gcloud run services update SERVICE --use-http2
SERVICE
pelo nome do serviço;
Também é possível definir que serviço use HTTP/2 durante a implantação usando o comando:
gcloud run deploy --image IMAGE_URL --use-http2
IMAGE_URL por uma referência à imagem de contêiner, por
exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest
; Se você usa o Artifact Registry,
o repositório REPO_NAME já
precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Atualize
ports
com o nomeh2c
econtainerPort
com a porta de sua escolha, conforme mostrado no exemplo a seguir:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL ports: - name: h2c containerPort: 8080
Substituir
- SERVICE pelo nome do serviço do Cloud Run
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não excede 63 caracteres
- Começa com
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recurso google_cloud_run_v2_service
em template.containers
na
configuração do Terraform. Se o contêiner ouve solicitações HTTP em uma porta diferente de 8080
, substitua 8080
por pelo número dessa porta.
Ver configurações do http/2
Para ver as configurações atuais de http/2 do serviço do Cloud Run:
Console
No console do Google Cloud, acesse o Cloud Run:
Clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Revisões.
No painel de detalhes à direita, a configuração http/2 está listada na guia Contêiner.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localize a configuração http/2 na configuração retornada.