Definir variáveis de ambiente de build (implantação de origem)

As variáveis de ambiente de build são pares de chave-valor que permitem transmitir informações de configuração para buildpacks durante a implantação de um código-fonte. Por exemplo, no tempo de build, você pode personalizar opções do compilador, especificar certificados no tempo de build, configurar parâmetros e assim por diante.

Esta página mostra como definir variáveis de ambiente de build que estão disponíveis em tempo de build e é relevante para desenvolvedores de plataformas que estão implantando serviços ou funções do Cloud Run da origem. As flags da CLI gcloud da variável de ambiente de build são compatíveis com implantações de origem (--source), mas não com implantações de imagens de contêiner (--image).

É possível usar variáveis de ambiente para configurar serviços ou funções, mas não recomendamos usá-las para armazenar secrets, como credenciais de banco de dados ou chaves de API. Armazene valores sensíveis fora do código-fonte e das variáveis de ambiente. Para armazenar secrets, recomendamos o uso do Secret Manager. Para configurar serviços que acessam secrets armazenados no Secret Manager, consulte Configurar secrets.

Antes de começar

  • Enable the Cloud Run Admin API and Cloud Build APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criadas automaticamente.

Funções exigidas

Você ou seu administrador precisa conceder à conta do implantador e à conta de serviço do Cloud Build os seguintes papéis do IAM.

Clique para conferir os papéis necessários para a conta do implantador

Para receber as permissões necessárias para criar e implantar a partir da origem, peça ao administrador para conceder a você os seguintes papéis do IAM:

Clique para conferir os papéis necessários para a conta de serviço do Cloud Build

O Cloud Build usa automaticamente a conta de serviço padrão do Compute Engine como a conta de serviço padrão do Cloud Build para criar seu código-fonte e recurso do Cloud Run, a menos que você substitua esse comportamento. Para que o Cloud Build crie suas origens, peça ao administrador para conceder o papel Criador do Cloud Run (roles/run.builder) à conta de serviço padrão 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 número do projeto Google Cloude PROJECT_ID pelo ID do projeto Google Cloud. Para instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte Criar e gerenciar projetos.

A concessão do papel de builder do Cloud Run à conta de serviço padrão do Compute Engine leva alguns minutos para se propagar.

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 serviço do Cloud Run interage 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.

Número máximo de variáveis e limites de ambiente de build

É possível definir até 100 variáveis de ambiente de criação, com um limite total de chave e valor de 64 KiB.

Definir variáveis de ambiente de build

Você pode definir variáveis de ambiente de build para estabelecer novas variáveis ou fazer substituir as variáveis de build atuais.

gcloud

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

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

Substitua:

  • SERVICE pelo nome do serviço do Cloud Run.
  • KEY1=VALUE1,KEY2=VALUE2 pela lista separada por vírgulas de nomes de variáveis e seus valores implantados com uma função que permitem transmitir informações de configuração para buildpacks.

Se você estiver implantando uma função, adicione a flag --function com o ponto de entrada da função no código-fonte.

Atualizar variáveis de ambiente de build

É possível atualizar variáveis de ambiente de build para serviços atuais. Essa é uma abordagem não destrutiva que altera ou adiciona variáveis de ambiente de build, mas não as exclui.

gcloud

Para atualizar variáveis de ambiente de build para serviços atuais, use a flag --update-build-env-vars:

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

Se você estiver implantando uma função, adicione a flag --function com o ponto de entrada da função no código-fonte.

Excluir variáveis de ambiente de build

É possível excluir variáveis de ambiente de build para serviços atuais.

gcloud

Para remover variáveis de ambiente de build de serviços atuais, use a flag --remove-build-env-vars:

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

Como alternativa, é possível limpar as variáveis de ambiente de build usando o comando --clear-build-env-vars para serviços atuais:

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

Se você estiver implantando uma função, adicione a flag --function com o ponto de entrada da função no código-fonte.

Usar um arquivo de variáveis de ambiente de build

É possível usar um arquivo de variáveis de ambiente de build para funções atuais.

gcloud

Para definir variáveis de ambiente de build usando um arquivo, use a flag --build-env-vars-file:

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

Substitua FILE_NAME.yaml, em que o conteúdo do arquivo é o seguinte:

 KEY1: VALUE1
 KEY2: VALUE2

Se você estiver implantando uma função, adicione a flag --function com o ponto de entrada da função no código-fonte.