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 theserviceusage.services.enable
permission. Learn how to grant roles.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:
- Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper
) no seu projeto - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer
) no seu projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na identidade de serviço do Cloud Run
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.