Quando você define variáveis de ambiente, elas são injetadas no contêiner e podem ser acessadas pelo código. As variáveis de ambiente são definidas como pares de chave-valor.
Nomes reservados
As variáveis de ambiente definidas no contrato de ambiente de execução do contêiner são reservadas e não podem ser configuradas. Mais especificamente, a variável de ambiente PORT
é injetada no seu contêiner pelo Cloud Run. Não configure isso.
Defina as variáveis de ambiente
É possível definir variáveis de ambiente para serviços ou jobs do Cloud Run.
Para serviços do Cloud Run
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 definir variáveis de ambiente 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
Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, redes, segurança para expandir a página de configuração do serviço.
Clique na guia Contêiner.
- Faça o seguinte:
- Se você estiver adicionando uma variável, clique em Adicionar variável. Especifique o nome escolhido para ela e o respectivo o valor nas caixas de texto Nome e Valor.
- Se você estiver alterando um valor para uma variável, substitua o valor atual na caixa de texto Valor pelo valor escolhido.
- Se você estiver removendo uma ou mais variáveis de ambiente, passe o cursor à esquerda da caixa de texto Valor da variável que você está removendo para exibir o ícone de lixeira e clique nele.
- Faça o seguinte:
Clique em Criar ou Implantar.
Linha de comando
Para definir, atualizar ou remover variáveis de ambiente de um serviço existente, use o comando gcloud run services update. É possível usar qualquer uma das sinalizações a seguir, conforme necessário:
É possível especificar variáveis de ambiente ao implantar um serviço ou atualizá-las após a criação do serviço:
gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2 gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
- Substitua SERVICE pelo nome do serviço.
- Substitua KEY1=VALUE1,KEY2=VALUE2 pela lista separada por vírgulas dos nomes das variáveis desejadas e os valores delas.
- IMAGE_URL por uma referência à imagem de contêiner, por
exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
; Ao usar o Artifact Registry, o URL tem o seguinte formato:REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. .
YAML
É possível fazer o download e conferir as configurações de serviço usando o
comando gcloud run services describe --format export
, que produz
resultados limpos no formato YAML.
Em seguida, modifique os campos descritos abaixo e
faça upload do YAML modificado usando o comando gcloud run services replace
.
Modifique os campos somente conforme documentado.
Para ver e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize os atributos
name
evalue
no atributoenv
emcontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Substitua:
- 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
. Ao usar o Artifact Registry, o URL tem o seguinte formato:REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - KEY-1, VALUE-1 pela variável de ambiente e valor. Se quiser, adicione variáveis e valores.
- 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
Substitua o serviço pela nova configuraçã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_service
em template.spec.containers
na
configuração do Terraform. O exemplo a seguir define
a variável de ambiente foo
como bar
e a variável de ambiente baz
como quux
:
Para jobs do Cloud Run
Para definir uma variável de ambiente para um job do Cloud Run:
Console
Se você estiver configurando um novo job, clique na guia Jobs e preencha a página inicial de configurações do job conforme quiser. Se você estiver configurando um job, clique nele e em Editar.
Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.
Clique na guia Variáveis.
- Faça o seguinte:
- Se você estiver adicionando uma variável, clique em Adicionar variável. Especifique o nome escolhido para ela e o respectivo o valor nas caixas de texto Nome e Valor.
- Se você estiver alterando um valor para uma variável, substitua o valor atual na caixa de texto Valor pelo valor escolhido.
- Se você estiver removendo uma ou mais variáveis de ambiente, passe o cursor à esquerda da caixa de texto Valor da variável que você está removendo para exibir o ícone de lixeira e clique nele.
- Faça o seguinte:
Clique em Criar ou Atualizar.
Linha de comando
Configure, atualize ou remova variáveis de ambiente de um serviço que já existe usando o comando gcloud run jobs update. É possível usar qualquer uma das sinalizações a seguir, conforme necessário:
- --set-env-vars
- --update-env-vars
- --remove-env-vars
-
É possível especificar variáveis de ambiente ao criar um job ou ao atualizar um job:
gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2 gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Substitua JOB_NAME pelo nome do seu nó.
Substitua KEY1=VALUE1,KEY2=VALUE2 pela lista separada por vírgulas dos nomes das variáveis desejadas e os valores delas.
IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
;
YAML
Faça o download e veja a configuração do job que já existe usando o comando gcloud run jobs describe --format export
, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace
.
Modifique os campos somente conforme documentado.
Para ver e fazer o download da configuração:
gcloud run jobs describe JOB_NAME --format export > job.yaml
- Atualize os atributos
name
evalue
emenv
, conforme mostrado emcontainers:
:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Substitua KEY-1 e VALUE-1 pela variável de ambiente e pelo valor. Se quiser, adicione variáveis e valores.
Também é possível especificar mais configurações, como variáveis de ambiente ou limites de memória.
- Atualize os atributos
Atualize a configuração do job que já existe:
gcloud run jobs replace job.yaml
Definir muitas variáveis de ambiente
Se você tiver muitas variáveis de ambiente que não podem ser facilmente listadas no formato KEY1=VALUE1,KEY2=VALUE2
, poderá repetir as sinalizações acima várias vezes:
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
Escape de caracteres de vírgula
Como o caractere de vírgula ,
é usado para dividir variáveis de ambiente, caso
a variável de ambiente contenha caracteres de vírgula como valores, você precisará
fazer o escape desses delimitadores
especificando um caractere delimitador diferente, por exemplo, @
:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
Como definir variáveis de ambiente padrão no contêiner
Use a instrução ENV
em um Dockerfile para definir valores padrão para variáveis de ambiente:
ENV KEY1=VALUE1,KEY2=VALUE2
Ordem de precedência: variáveis de contêiner x serviço ou job
Se você definir uma variável de ambiente padrão no contêiner e também definir uma variável de ambiente com o mesmo nome no serviço Cloud Run, o valor definido no serviço terá precedência.
Ver as configurações das variáveis de ambiente
Para ver as configurações atuais das variáveis de ambiente do serviço do Cloud Run:
Console
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 de variáveis de ambiente está listada na guia variáveis.
Linha de comando
Use o comando a seguir:
gcloud run services describe SERVICE
Localize a configuração de variáveis de ambiente na configuração retornada.
Para ver as configurações atuais das variáveis de ambiente do job do Cloud Run:
Console
Clique no job em que você tem interesse para abrir a página Detalhes do job.
Clique na guia Configuração.
Localize a definição das variáveis de ambiente nos detalhes da configuração.
Linha de comando
Use o comando a seguir:
gcloud run jobs describe JOB_NAME
Localize a configuração de variáveis de ambiente na configuração retornada.
Código de amostra
Para ver uma amostra de código que mostra como acessar as variáveis de ambiente no código, consulte Como processar a configuração confidencial com o Gerenciador de segredos no tutorial de autenticação de usuário final.
A seguir
Você pode usar variáveis de ambiente para definir a configuração do Buildpack. Para detalhes específicos da linguagem, consulte a documentação de Buildpacks com relação ao seguinte: