Configurar variáveis de ambiente para jobs

Nesta página, descrevemos como configurar variáveis de ambiente para seu job do Cloud Run.

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.

Número máximo de variáveis de ambiente

É possível definir no máximo mil variáveis de ambiente por contêiner para cada job do Cloud Run.

Funções exigidas

Para receber as permissões necessárias e configurar jobs do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM no job:

  • Desenvolvedor do Cloud Run (roles/run.developer): o job do Cloud Run
  • Usuário da conta de serviço (roles/iam.serviceAccountUser) – a identidade 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 job do Cloud Run interagir com APIs doGoogle 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.

Defina as variáveis de ambiente

É possível definir variáveis de ambiente para jobs novos e atuais. A flag --set-env-vars é uma ação destrutiva que exclui variáveis de ambiente definidas anteriormente e não incluídas na nova lista.

É possível definir variáveis de ambiente usando o console Google Cloud , a CLI gcloud ou um arquivo YAML:

Console

  1. No console do Google Cloud , acesse a página de jobs do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu e clique em Implantar contêiner para preencher a página inicial de configurações do job. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.

  3. Clique em Contêineres, Volumes, Conexões, Segurança para expandir a página de propriedades do job.

  4. Clique na guia Variáveis.

    imagem

    • Na guia "Variáveis e secrets", clique em Adicionar variável e especifique o nome e o valor que você quer para a variável nos campos Nome e Valor. Para mais informações sobre como definir várias variáveis de ambiente ou usar caracteres de escape especiais, consulte Definir várias variáveis de ambiente.
  5. Clique em Criar ou Atualizar.

gcloud

Para especificar variáveis de ambiente ao criar um job, use a flag --set-env-vars:

gcloud run jobs create JOB_NAME --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • JOB_NAME: o nome do job.
  • KEY1=VALUE1,KEY2=VALUE2: lista separada por vírgulas de nomes de variáveis e seus valores.
  • IMAGE_URL: uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.

Para mais informações sobre como definir várias variáveis de ambiente ou usar caracteres de escape especiais, consulte Definir várias variáveis de ambiente.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. Atualize os atributos name e value em env, conforme mostrado em containers::
    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 mais variáveis e valores.

    Também é possível definir outras configurações, como variáveis de ambiente ou limites de memória.

  2. Atualize a configuração do job que já existe:

    gcloud run jobs replace job.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_job na configuração do Terraform:
resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        env {
          name = "KEY-1"
          value = "VALUE-1"
        }
        env {
          name = "KEY-N"
          value = "VALUE-N"
        }
      }
    }
  }
}

Substitua:

  • JOB_NAME: o nome do seu job do Cloud Run;
  • REGION: a Google Cloud região. Por exemplo, europe-west1.
  • KEY-1: a variável de ambiente.
  • VALUE-1: o valor associado à chave.

Se quiser, adicione mais blocos env para definir outras variáveis de ambiente.

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 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 job do Cloud Run, o valor definido no job terá precedência.

Definir várias variáveis de ambiente

É possível definir várias variáveis de ambiente usando o arquivo .env ou a flag --set-env-vars.

Definir várias variáveis de ambiente usando o arquivo .env

Console

  1. No console do Google Cloud , acesse a página de jobs do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu e clique em Implantar contêiner para preencher a página inicial de configurações do job. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.

  3. Clique em Contêineres, Volumes, Conexões, Segurança para expandir a página de propriedades do job.

  4. Clique na guia Contêiner.

    imagem

    • Na guia "Variáveis e secrets", clique em Adicionar variável e cole o conteúdo do arquivo .env no campo Nome. O Cloud Run preenche automaticamente o campo Valor e cria novas variáveis para cada par de chave-valor definido no arquivo .env.
  5. Clique em Criar ou Atualizar.

gcloud

Para especificar várias variáveis de ambiente do arquivo .env, execute o seguinte comando:

gcloud run jobs create JOB_NAME --image=IMAGE_URL --env-vars-file=ENV_FILE_PATH

Substitua:

  • JOB_NAME: o nome do seu job do Cloud Run;
  • IMAGE_URL: uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • ENV_FILE_PATH: caminho para o arquivo .env.

Definir várias variáveis de ambiente usando a flag --set-env-vars

Se você tiver várias variáveis de ambiente que não podem ser listadas no formato KEY1=VALUE1,KEY2=VALUE2, repita a flag --set-env-vars 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=..."

Atualizar variáveis de ambiente

É possível atualizar variáveis de ambiente para jobs atuais. Essa é uma abordagem não destrutiva que muda ou adiciona variáveis de ambiente, mas não exclui as variáveis definidas anteriormente.

Console

Para atualizar variáveis de ambiente usando o Google Cloud console:

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione o job na lista e clique em Editar e implantar nova revisão.

  3. Clique na guia Contêiner.

  4. Na guia Variáveis e secrets, edite os campos Nome ou Valor e clique em Concluído.

  5. Clique em Implantar.

gcloud

Para atualizar variáveis de ambiente de um job atual, use a flag --update-env-vars:

gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • JOB_NAME: o nome do job.
  • KEY1=VALUE1,KEY2=VALUE2: lista separada por vírgulas de nomes e valores de variáveis.

Ver as configurações das variáveis de ambiente

Para ver as configurações atuais das variáveis de ambiente do job do Cloud Run:

Console

  1. No console do Google Cloud , acesse a página de jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Clique no job em que você tem interesse para abrir a página Detalhes do job.

  3. Clique em Ler e editar a configuração do job.

  4. Localize a definição das variáveis de ambiente nos detalhes da configuração.

gcloud

  1. Use o comando a seguir:

    gcloud run jobs describe JOB_NAME
  2. Localize a configuração de variáveis de ambiente na configuração retornada.

Excluir variáveis de ambiente

É possível excluir variáveis de ambiente para jobs atuais.

Console

Para excluir variáveis de ambiente usando o console Google Cloud :

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione o job na lista e clique em Editar e implantar nova revisão.

  3. Clique na guia Contêiner.

  4. Na guia Variáveis e secrets, mova o cursor para a esquerda do campo Valor da variável de ambiente que você está removendo para exibir o ícone Excluir e clique nele.

  5. Clique em Concluído.

  6. Clique em Implantar.

gcloud

Para remover seletivamente as variáveis de ambiente de um job atual, use a flag --remove-env-vars:

gcloud run jobs update JOB_NAME --remove-env-vars KEY1,KEY2

Substitua:

  • JOB_NAME: o nome do job.
  • KEY1,KEY2: lista de nomes de variáveis separados por vírgulas.

Como alternativa, limpe todas as variáveis de ambiente definidas anteriormente com a flag --clear-env-vars:

gcloud run jobs update JOB_NAME --clear-env-vars