Nesta página, descrevemos como implantar novos serviços e novas revisões no Cloud Run (totalmente gerenciado).
Permissões necessárias para implantar
Você precisa ter um dos seguintes papéis:
- Proprietário
- Editor
- Os papéis Administrador do Cloud Run e Usuário da conta de serviço.
- Qualquer papel personalizado que inclua esta lista específica de permissões.
Imagens que podem ser implantadas
Não há limite de tamanho que se aplique à imagem do contêiner que é possível implantar.
É possível implantar imagens de contêiner armazenadas no Container Registry ou no Artifact Registry. É possível usar apenas os seguintes tipos de imagens de contêiner:
- Imagens de contêiner armazenadas no mesmo projeto em que você quer implantar
- Imagens de contêiner de outros projetos do Google Cloud (desde que as permissões corretas do IAM estejam definidas).
- Imagens de contêiner públicas do Container Registry ou Artifact Registry.
Como implantar um novo serviço
É possível especificar uma imagem de contêiner com uma tag
(por exemplo, gcr.io/my-project/my-image:latest
) ou com um resumo exato
(por exemplo, gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
A implantação de um serviço pela primeira vez cria a primeira revisão dele. Observe que as revisões são imutáveis. Se você implantar a partir de uma tag de imagem de contêiner, ela será resolvida para um resumo, e a revisão sempre exibirá esse resumo específico.
É possível implantar um contêiner usando o Console do Cloud, a linha de comando gcloud
ou um arquivo de configuração YAML.
Clique na guia para ver instruções usando a ferramenta de sua preferência.
Console
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Clique em Criar serviço para exibir a página Criar serviço.
No formulário, siga estas etapas:
Cloud Run (totalmente gerenciado) para implantar em um ambiente totalmente gerenciado.
Selecione a região em que você quer que o serviço esteja localizado.
Digite o nome do serviço desejado. Os nomes de serviço precisam ser exclusivos por região e projeto ou por cluster. Um nome de serviço não pode ser alterado posteriormente e fica visível publicamente ao usar o Cloud Run (totalmente gerenciado).
Em Autenticação:
- Se você estiver criando uma API ou um site público, selecione Permitir invocações não autenticadas. A seleção atribui o papel de chamador do IAM ao identificador especial
allUser
. É possível usar o IAM para editar essa configuração depois de criar o serviço. - Se você quiser que um serviço seguro seja protegido por autenticação, selecione Exigir autenticação.
- Se você estiver criando uma API ou um site público, selecione Permitir invocações não autenticadas. A seleção atribui o papel de chamador do IAM ao identificador especial
Clique em Avançar para acessar a segunda página do formulário de criação de serviço:
No formulário, siga estas etapas:
Na caixa de texto URL da imagem do contêiner, forneça o URL de uma imagem de um registro compatível, por exemplo:
gcr.io/cloudrun/hello
Opcionalmente, clique em Mostrar configurações avançadas e nas guias subsequentes a serem definidas:
- Configuração do contêiner
- Simultaneidade
- Tempo limite da solicitação
- Alocação de CPU
- Limites de memória
- Número máximo de instâncias
- Variáveis de ambiente
- Conexões do Cloud SQL, se você estiver implantando no Cloud Run (totalmente gerenciado)
Clique em Criar para implantar a imagem no Cloud Run e aguarde a conclusão da implantação.
Clique no link do URL exibido para abrir o endpoint exclusivo e estável do serviço implantado.
Linha de comando
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Execute o comando:
gcloud run deploy SERVICE --image IMAGE_URL
- Substitua SERVICE pelo nome do serviço em que você quer implantar. Se o serviço ainda não existir, esse comando criará o serviço durante a implantação. É possível omitir esse parâmetro inteiramente, mas será solicitado o nome do serviço, se você omiti-lo.
Substitua
IMAGE_URL
por uma referência à imagem do contêiner, por exemplo,gcr.io/myproject/my-image:latest
.Se você estiver criando uma API ou um site públicos, é possível permitir invocações não autenticadas do serviço usando a sinalização
--allow-unauthenticated
. Isso atribui o papel do IAM de Chamador do Cloud Run aallUsers
. Também é possível especificar--no-allow-unauthenticated
para não permitir invocações não autenticadas. Se você omitir qualquer uma dessas sinalizações, será solicitado a confirmar quando o comandodeploy
é executado.
Aguarde a conclusão da implantação. Após a conclusão bem-sucedida, uma mensagem de sucesso é exibida com o URL do serviço implantado.
Para implantar em um local diferente daquele que você definiu por meio das propriedades
run/region
gcloud
, use:
gcloud run deploy SERVICE --platform managed --region REGION
YAML
É possível armazenar a especificação do serviço em um arquivo YAML
e implantá-la usando a linha de comando gcloud
.
Crie um novo arquivo
service.yaml
com este conteúdo:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Substitua:
- SERVICE pelo nome do serviço do Cloud Run;
- IMAGE pelo URL da imagem do contêiner.
Também é possível especificar mais configurações, como variáveis de ambiente ou limites de memória.
Implante o novo serviço usando o seguinte comando:
gcloud beta run services replace service.yaml
Como opção, torne seu serviço público se você quiser permitir o acesso não autenticado ao serviço.
Cloud Code
Para implantar com o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.
Terraform
Se você usar o Terraform,
poderá definir seu serviço em uma configuração do Terraform usando o
recurso google_cloud_run_service
do
Provedor do Google Cloud Platform (todos em inglês).
Crie um novo arquivo
main.tf
com este conteúdo:provider "google" { project = "PROJECT-ID" } resource "google_cloud_run_service" "default" { name = "SERVICE" location = "REGION" metadata { annotations = { "run.googleapis.com/client-name" = "terraform" } } template { spec { containers { image = "gcr.io/PROJECT-ID/IMAGE" } } } } data "google_iam_policy" "noauth" { binding { role = "roles/run.invoker" members = ["allUsers"] } } resource "google_cloud_run_service_iam_policy" "noauth" { location = google_cloud_run_service.default.location project = google_cloud_run_service.default.project service = google_cloud_run_service.default.name policy_data = data.google_iam_policy.noauth.policy_data }
Substitua:
- PROJECT-ID pelo ID do projeto do Google Cloud.
- REGION pela região do Google Cloud.
- SERVICE pelo nome do serviço do Cloud Run.
- IMAGE pelo nome da imagem do contêiner.
A configuração acima permite acesso público (o equivalente a
--allow-unauthenticated
). Para tornar o serviço privado, remova as estrofesgoogle_iam_policy
egoogle_cloud_run_service_iam_policy
.Inicialize o Terraform:
terraform init
Aplique a configuração do Terraform:
terraform apply
Confirme que você quer aplicar as ações descritas digitando
yes
.
Locais do Cloud Run
O Cloud Run é regional, o que significa que a infraestrutura que executa seus serviços do Cloud Run está localizada em uma região específica e é gerenciada pelo Google para estar disponível de maneira redundante em todas as zonas da região.
Atender aos seus requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região em que seus serviços do Cloud Run são executados.
Geralmente, é possível selecionar a região mais próxima de seus usuários, mas considere a localização dos outros produtos do Google Cloud usados pelo serviço do Cloud Run.
O uso de produtos do Google Cloud em vários locais pode afetar a latência e o custo do serviço.
O Cloud Run está disponível nas regiões a seguir:
Sujeitas aos preços do nível 1
asia-east1
(Taiwan)asia-northeast1
(Tóquio)asia-northeast2
(Osaka)europe-north1
(Finlândia)europe-west1
(Bélgica)europe-west4
(Países Baixos)us-central1
(Iowa)us-east1
(Carolina do Sul)us-east4
(Norte da Virgínia)us-west1
(Oregon)
Sujeitas aos preços do nível 2
asia-east2
(Hong Kong)asia-northeast3
(Seul, Coreia do Sul)asia-southeast1
(Singapura)asia-southeast2
(Jacarta)asia-south1
(Mumbai, Índia)australia-southeast1
(Sydney)europe-west2
(Londres, Reino Unido)europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça)northamerica-northeast1
(Montreal)southamerica-east1
(São Paulo, Brasil)
Se você já criou um serviço do Cloud Run, poderá ver a região no painel do Cloud Run no Console do Cloud.
Cada serviço tem um URL exclusivo e permanente que não muda ao longo do tempo à medida que você implanta novas revisões nele.
Como implantar uma nova revisão de um serviço atual
É possível implantar uma nova revisão usando o Console do Cloud, a linha de comando gcloud
ou um arquivo de configuração YAML.
A alteração de qualquer configuração resulta na criação de uma nova revisão, mesmo que não haja alterações na imagem do contêiner. Cada revisão criada é imutável.
Clique na guia para ver instruções usando a ferramenta de sua preferência.
Console
Para implantar uma nova revisão de um serviço atual, realize as etapas a seguir:
Localize o serviço que você quer atualizar na lista de serviços e clique nele para abrir os detalhes.
Clique em EDITAR E IMPLANTAR NOVA REVISÃO. Isso exibe o formulário de implantação de revisão:
Se necessário, forneça o URL para a nova imagem do contêiner que você quer implantar.
Opcionalmente, defina:
- Configuração do contêiner
- Simultaneidade
- Tempo limite da solicitação
- Alocação de CPU
- Limites de memória
- Número máximo de instâncias
- Variáveis de ambiente
- Conexões do Cloud SQL, se você estiver implantando no Cloud Run (totalmente gerenciado)
Para enviar todo o tráfego para a nova revisão, marque a caixa de seleção identificada como Veicular esta revisão imediatamente. Para lançar uma nova revisão gradualmente, desmarque essa caixa de seleção: isso resultará em uma implantação em que nenhum tráfego será enviado para a nova revisão. Siga as instruções de lançamentos graduais após a implantação.
Clique em IMPLANTAR e aguarde a conclusão da implantação.
Linha de comando
Para usar a linha de comando, você precisa já ter
configurado a linha de comando gcloud
.
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Execute o comando:
gcloud run deploy SERVICE --image IMAGE_URL
- Substitua SERVICE pelo nome do serviço que você está implantando. É possível omitir esse parâmetro inteiramente, mas será solicitado o nome do serviço, se você omiti-lo.
Substitua
IMAGE_URL
por uma referência à imagem do contêiner, por exemplo,gcr.io/myproject/my-image:latest
.O sufixo de revisão é atribuído automaticamente para novas revisões. Se você quiser fornecer seu próprio sufixo de revisão, use o parâmetro de linha de comando
gcloud
- revision-sufix.
Aguarde a conclusão da implantação. Após a conclusão bem-sucedida, uma mensagem de sucesso é exibida com o URL do serviço implantado.
YAML
Se você precisar fazer o download ou visualizar a configuração de um serviço existente, use o seguinte comando para salvar os resultados em um arquivo YAML:
gcloud run services describe SERVICE --format export > service.yaml
Em um arquivo YAML de configuração de serviço, modifique qualquer atributo filho spec.template
conforme preferir para atualizar as configurações de revisão.
Em seguida, implante a nova revisão:
gcloud beta run services replace service.yaml
Cloud Code
Para implantar uma nova revisão de um serviço existente com o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.
Terraform
Você já precisará configurar o Terraform de acordo com o exemplo Como implantar um novo serviço.
Faça uma alteração no arquivo de configuração.
Aplique a configuração do Terraform:
terraform apply
Confirme que você quer aplicar as ações descritas digitando
yes
.
Locais do Cloud Run
O Cloud Run é regional, o que significa que a infraestrutura que executa seus serviços do Cloud Run está localizada em uma região específica e é gerenciada pelo Google para estar disponível de maneira redundante em todas as zonas da região.
Atender aos seus requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região em que seus serviços do Cloud Run são executados.
Geralmente, é possível selecionar a região mais próxima de seus usuários, mas considere a localização dos outros produtos do Google Cloud usados pelo serviço do Cloud Run.
O uso de produtos do Google Cloud em vários locais pode afetar a latência e o custo do serviço.
O Cloud Run está disponível nas regiões a seguir:
Sujeitas aos preços do nível 1
asia-east1
(Taiwan)asia-northeast1
(Tóquio)asia-northeast2
(Osaka)europe-north1
(Finlândia)europe-west1
(Bélgica)europe-west4
(Países Baixos)us-central1
(Iowa)us-east1
(Carolina do Sul)us-east4
(Norte da Virgínia)us-west1
(Oregon)
Sujeitas aos preços do nível 2
asia-east2
(Hong Kong)asia-northeast3
(Seul, Coreia do Sul)asia-southeast1
(Singapura)asia-southeast2
(Jacarta)asia-south1
(Mumbai, Índia)australia-southeast1
(Sydney)europe-west2
(Londres, Reino Unido)europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça)northamerica-northeast1
(Montreal)southamerica-east1
(São Paulo, Brasil)
Se você já criou um serviço do Cloud Run, poderá ver a região no painel do Cloud Run no Console do Cloud.
Como implantar imagens de outros projetos do Google Cloud
É possível implantar imagens de contêiner de outros projetos do Google Cloud se você definir as permissões corretas do IAM:
No console do Console do Cloud, abra o projeto do serviço do Cloud Run.
Copie o e-mail do agente de serviço do Cloud Run. Ele tem o sufixo @serverless-robot-prod.iam.gserviceaccount.com
Abra o projeto com o registro do contêiner que você quer usar.
Clique em Adicionar para adicionar um novo membro.
Na caixa de texto Novos membros, cole o e-mail da conta de serviço que você copiou anteriormente.
Na lista suspensa Selecionar um papel, selecione o papel Armazenamento -> Visualizador de objeto do armazenamento.
Implante a imagem do contêiner no projeto que contém o serviço do Cloud Run.
A seguir
Depois de implantar um novo serviço, é possível realizar estas ações:
- Reversões, lançamentos graduais e migração de tráfego
- Visualizar registros de serviço
- Monitorar o desempenho do serviço
- Definir limites de memória
- Definir as variáveis de ambiente
- Alterar a simultaneidade do serviço
- Gerenciar o serviço
- Gerenciar revisões de serviço
Automatize as compilações e as implantações dos serviços do Cloud Run usando os acionadores do Cloud Build: