Configure variáveis de ambiente para trabalhos

Esta página descreve como configurar variáveis de ambiente para a sua tarefa do Cloud Run.

Quando define variáveis de ambiente, estas são injetadas no contentor e ficam acessíveis ao seu 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 tempo de execução do contentor estão reservadas e não podem ser definidas.

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

Tenha em atenção que pode definir um máximo de 1000 variáveis de ambiente por contentor para cada tarefa do Cloud Run.

Funções necessárias

Para receber as autorizações necessárias para configurar tarefas do Cloud Run, peça ao administrador para lhe conceder as seguintes funções de IAM na tarefa:

  • Programador do Cloud Run (roles/run.developer) – a tarefa do Cloud Run
  • Utilizador da conta de serviço (roles/iam.serviceAccountUser): a identidade do serviço

Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se a sua tarefa do Cloud Run interagir com Google Cloud APIs, como as bibliotecas de cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.

Defina variáveis de ambiente

Pode definir variáveis de ambiente para tarefas novas e existentes. Tenha em atenção que a flag --set-env-vars é uma ação destrutiva que elimina as variáveis de ambiente definidas anteriormente que não estão incluídas na nova lista de variáveis de ambiente.

Pode definir variáveis de ambiente através da Google Cloud consola, da CLI gcloud ou de um ficheiro YAML:

Consola

  1. Na Google Cloud consola, aceda à página Tarefas do Cloud Run:

    Aceda ao Cloud Run

  2. Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.

  3. Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.

  4. Clique no separador Variáveis.

    imagem

    • No separador Variáveis e segredos, clique em Adicionar variável e especifique o nome e o valor que quer para a variável nos campos Nome e Valor. Para mais informações sobre como definir várias variáveis de ambiente ou carateres especiais de escape, consulte o artigo Defina várias variáveis de ambiente.
  5. Clique em Criar ou Atualizar.

gcloud

Para especificar variáveis de ambiente quando cria uma tarefa, use a flag --set-env-vars:

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

Substitua o seguinte:

  • JOB_NAME: o nome da sua profissão.
  • KEY1=VALUE1,KEY2=VALUE2: lista separada por vírgulas dos nomes das variáveis e respetivos valores.
  • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.

Para mais informações sobre como definir várias variáveis de ambiente ou carateres especiais de escape, consulte o artigo Defina várias variáveis de ambiente.

YAML

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    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, VALUE-1 pela variável de ambiente e pelo valor. Opcionalmente, adicione mais variáveis e valores conforme necessário.

    Também pode especificar mais configurações, como variáveis de ambiente ou limites de memória.

  2. Atualize a configuração da tarefa existente:

    gcloud run jobs replace job.yaml

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_v2_job na sua 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 o seguinte:

  • JOB_NAME: o nome da sua tarefa 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.

Opcionalmente, adicione mais blocos env para definir variáveis de ambiente adicionais.

Defina variáveis de ambiente predefinidas no contentor

Pode usar a declaração ENV num Dockerfile para definir valores predefinidos para variáveis de ambiente:

ENV KEY1=VALUE1,KEY2=VALUE2

Ordem de precedência: variáveis do contentor versus variáveis da tarefa

Se definir uma variável de ambiente predefinida no contentor e também definir uma variável de ambiente com o mesmo nome na tarefa do Cloud Run, o valor definido na tarefa tem precedência.

Defina várias variáveis de ambiente

Pode definir várias variáveis de ambiente através do ficheiro .env ou da flag --set-env-vars.

Defina várias variáveis de ambiente através do ficheiro .env

Consola

  1. Na Google Cloud consola, aceda à página Tarefas do Cloud Run:

    Aceda ao Cloud Run

  2. Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.

  3. Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.

  4. Clique no separador Contentor.

    imagem

    • No separador Variáveis e segredos, clique em Adicionar variável e cole o conteúdo do ficheiro .env no campo Nome. O Cloud Run preenche automaticamente o campo Valor e cria novas variáveis para cada par de chave-valor que definir no ficheiro .env.
  5. Clique em Criar ou Atualizar.

gcloud

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

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

Substitua o seguinte:

  • JOB_NAME: o nome da sua tarefa do Cloud Run.
  • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • ENV_FILE_PATH: caminho para o ficheiro .env.

Defina várias variáveis de ambiente com a flag --set-env-vars

Se tiver várias variáveis de ambiente que não podem ser listadas no formato KEY1=VALUE1,KEY2=VALUE2, pode repetir 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 carateres de vírgula

Uma vez que o caráter de vírgula , é usado para dividir as variáveis de ambiente, se a sua variável de ambiente contiver carateres de vírgula como valores, tem de escapar a esses delimitadores especificando um caráter delimitador diferente, por exemplo, @:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

Atualize as variáveis de ambiente

Pode atualizar as variáveis de ambiente para tarefas existentes. Esta é uma abordagem não destrutiva que altera ou adiciona variáveis de ambiente, mas não elimina as variáveis de ambiente definidas anteriormente.

Consola

Para atualizar as variáveis de ambiente através da consola Google Cloud :

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Selecione a tarefa na lista e clique em Editar e implementar nova revisão.

  3. Clique no separador Contentor.

  4. No separador Variáveis e segredos, edite os campos Nome ou Valor e clique em Concluído.

  5. Clique em Implementar.

gcloud

Para atualizar as variáveis de ambiente de uma tarefa existente, use a flag --update-env-vars:

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

Substitua o seguinte:

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

Veja as definições das variáveis de ambiente

Para ver as definições atuais das variáveis de ambiente para a sua tarefa do Cloud Run:

Consola

  1. Na Google Cloud consola, aceda à página Tarefas do Cloud Run:

    Aceda às tarefas do Cloud Run

  2. Clique no trabalho que lhe interessa para abrir a página Detalhes do trabalho.

  3. Clique em Ver e editar configuração da tarefa.

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

gcloud

  1. Use o seguinte comando:

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

Elimine variáveis de ambiente

Pode eliminar variáveis de ambiente para tarefas existentes.

Consola

Para eliminar variáveis de ambiente através da Google Cloud consola:

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Selecione a tarefa na lista e clique em Editar e implementar nova revisão.

  3. Clique no separador Contentor.

  4. No separador Variáveis e segredos, mova o cursor para a esquerda do campo Valor da variável de ambiente que está a remover para apresentar o ícone Eliminar e clique nele.

  5. Clique em Concluído.

  6. Clique em Implementar.

gcloud

Para remover seletivamente variáveis de ambiente de uma tarefa existente, use a flag --remove-env-vars:

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

Substitua o seguinte:

  • JOB_NAME: o nome da sua profissão.
  • KEY1,KEY2: lista de nomes de variáveis separados por vírgulas.

Em 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