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 a configuração para buildpacks durante a implantação do código-fonte. Por exemplo, no tempo de build, você pode personalizar as 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 Cloud Run serviços ou funções a partir da origem. As flags da CLI gcloud de variáveis de ambiente de build são compatíveis com implantações de origem (--source) e não são compatíveis com implantações de imagem do contêiner (--image).

É possível usar variáveis de ambiente para configuração de serviços ou funções, mas não recomendamos como uma maneira de armazenar secrets, como credenciais de banco de dados ou chaves de API. Armazene valores confidenciais 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

  • Ative a API Cloud Run Admin e as APIs Cloud Build.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter a permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão com o papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar as 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 o código-fonte e o 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 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 por seu Google Cloud número do projeto e PROJECT_ID por seu Google Cloud ID do projeto. Para instruções detalhadas sobre como encontrar o ID do projeto e o número do projeto, consulte Criar e gerenciar projetos.

A concessão do papel de criador 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 Google Cloud APIs, 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 de ambiente de build e limites

É possível definir até 100 variáveis de ambiente de build, 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 seu Cloud Run serviço.
  • 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 para 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 pelo conteúdo do arquivo, que precisa ser semelhante a este:

 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.