Defina variáveis de ambiente de compilação (implementação de origem)

As variáveis de ambiente de compilação são pares de chave-valor que lhe permitem transmitir informações de configuração aos buildpacks quando implementa a partir do código fonte. Por exemplo, no momento da compilação, pode querer personalizar as opções do compilador, especificar certificados de compilação, configurar parâmetros, etc.

Esta página mostra como definir variáveis de ambiente de compilação que estão disponíveis no momento da compilação e é relevante para programadores de plataformas que estão a implementar serviços ou funções do Cloud Run a partir da origem. As flags da CLI gcloud da variável de ambiente de compilação são suportadas para implementações de origem (--source) e não são suportadas para implementações de imagens de contentores (--image).

Pode usar variáveis de ambiente para a configuração de serviços ou funções, mas não as recomendamos como forma de armazenar segredos, como credenciais de bases de dados ou chaves de API. Armazene valores confidenciais fora do código fonte e das variáveis de ambiente. Para armazenar segredos, recomendamos que use o Secret Manager. Para configurar serviços que acedem a segredos armazenados no Secret Manager, consulte o artigo Configure segredos.

Antes de começar

  • Ative a API Cloud Run Admin e a API Cloud Build:

    gcloud services enable run.googleapis.com \
        cloudbuild.googleapis.com

    Depois de ativar a API Cloud Run Admin, a conta de serviço predefinida do Compute Engine é criada automaticamente.

Funções necessárias

O utilizador ou o administrador tem de conceder à conta de implementação e à conta de serviço do Cloud Build as seguintes funções do IAM.

Clique para ver as funções necessárias para a conta do implementador

Para receber as autorizações necessárias para criar e implementar a partir da origem, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

Clique para ver as funções necessárias para a conta de serviço do Cloud Build

O Cloud Build usa automaticamente a conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e o recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função Cloud Run Builder (roles/run.builder) à conta de serviço predefinida do Compute Engine no seu projeto:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Substitua PROJECT_NUMBER pelo seu Google Cloud número do projeto e PROJECT_ID pelo seu Google Cloud ID do projeto. Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte o artigo Criar e gerir projetos.

A concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.

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 o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas 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.

Número máximo de variáveis de ambiente de compilação e limites

Pode definir até 100 variáveis do ambiente de compilação, com um limite total de chaves e valores de 64 KiB.

Defina variáveis de ambiente de compilação

Pode definir variáveis de ambiente de compilação para estabelecer novas variáveis ou substituir completamente as variáveis de compilação existentes.

gcloud

Para definir variáveis de ambiente de compilação ao implementar um serviço a partir do código-fonte, use a flag --set-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --set-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Substituir:

  • SERVICE com o nome do seu serviço do Cloud Run.
  • KEY1=VALUE1,KEY2=VALUE2 com a lista separada por vírgulas dos nomes das variáveis e os respetivos valores implementados juntamente com uma função que lhe permite transmitir informações de configuração para os buildpacks.

Se estiver a implementar uma função, adicione a flag --function com o ponto de entrada da função a partir do código-fonte.

Atualize as variáveis de ambiente de compilação

Pode atualizar as variáveis do ambiente de compilação para serviços existentes. Esta é uma abordagem não destrutiva que altera ou adiciona variáveis de ambiente de compilação, mas não elimina as variáveis de ambiente de compilação.

gcloud

Para atualizar as variáveis de ambiente de compilação para serviços existentes, use a flag --update-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --update-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Se estiver a implementar uma função, adicione a flag --function com o ponto de entrada da função a partir do código-fonte.

Elimine variáveis de ambiente de compilação

Pode eliminar variáveis de ambiente de compilação para serviços existentes.

gcloud

Para remover variáveis de ambiente de compilação para serviços existentes, use a flag --remove-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --remove-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Em alternativa, pode limpar as variáveis do ambiente de compilação usando o comando --clear-build-env-vars para serviços existentes:

gcloud run deploy SERVICE \
    --source . \
    --clear-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Se estiver a implementar uma função, adicione a flag --function com o ponto de entrada da função a partir do código-fonte.

Use um ficheiro de variáveis de ambiente de compilação

Pode usar um ficheiro de variáveis de ambiente de compilação para funções existentes.

gcloud

Para definir variáveis de ambiente de compilação a partir de um ficheiro, use a flag --build-env-vars-file:

gcloud run deploy SERVICE \
    --source . \
    --build-env-vars-file FILE_NAME.yaml

Substitua FILE_NAME.yaml pelo conteúdo do ficheiro, que deve ter o seguinte aspeto:

 KEY1: VALUE1
 KEY2: VALUE2

Se estiver a implementar uma função, adicione a flag --function com o ponto de entrada da função a partir do código-fonte.