Implantar uma função do Cloud Run (1ª geração)
Neste guia, mostramos como implantar uma função legada do Cloud Run da primeira geração a partir do código-fonte. Se você estiver criando uma função, consulte o Guia de início rápido do console no Cloud Run.
O processo de implantação recebe o código-fonte e as configurações e cria uma imagem executável que o Cloud Run functions gerencia automaticamente para processar solicitações para a função.
Princípios básicos de implantação
Os usuários que implantam funções do Cloud Run precisam ter o papel do IAM de Desenvolvedor de funções do Cloud Run ou um papel que inclua as mesmas permissões. Consulte também Outras configurações para implantação.
Implante uma função usando a CLI gcloud da seguinte maneira:
Use o comando
gcloud functions deploy
para implantar uma função:gcloud functions deploy YOUR_FUNCTION_NAME \ [--gen2] \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
O primeiro argumento,
YOUR_FUNCTION_NAME
, é um nome para a função implantada. O nome da função precisa começar com uma letra seguida por até 62 letras, números, hifens ou sublinhados e terminar com uma letra ou um númeroA flag
--gen2
especifica que você quer implantar nas funções do Cloud Run. A partir de setembro de 2024, essa será a configuração padrão. Para implantar na 1ª geração, use--no-gen2
.A sinalização
--region
especifica a região em que a função será implantada. Consulte Locais para ver uma lista de regiões compatíveis com o Cloud Run functions.A sinalização
--runtime
especifica o ambiente de execução da linguagem que a função usa. O Cloud Run functions aceita vários ambientes de execução. Consulte Tempos de execução para mais informações.A sinalização
--source
especifica o local do código-fonte da função. Consulte as seções a seguir para mais detalhes:A sinalização
--entry-point
especifica o ponto de entrada da função no código-fonte. Este é o código que será executado quando a função for executada. O valor dessa sinalização precisa ser um nome de função ou de classe totalmente qualificada no código-fonte. Consulte Ponto de entrada de função para mais informações.Para especificar o acionador da função, as sinalizações adicionais (representadas como
TRIGGER_FLAGS
acima) são obrigatórias, dependendo do acionador que você quer usar:Sinalizações do acionador Descrição do gatilho --trigger-http
Acionar a função com uma solicitação HTTP(S) Consulte Acionadores HTTP para mais informações. --trigger-topic=YOUR_PUBSUB_TOPIC
Acionar a função quando uma mensagem for publicada no tópico especificado do Pub/Sub. Consulte Acionadores do Pub/Sub para mais informações. --trigger-bucket=YOUR_STORAGE_BUCKET
Acionar a função quando um objeto é criado ou substituído no bucket especificado do Cloud Storage. Consulte Acionadores do Cloud Storage para mais informações. --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]Acionar a função quando o evento especificado ocorrer. É necessário especificar um recurso para alguns tipos de evento. Para mais informações, consulte Gatilhos compatíveis com o Cloud Functions (1ª geração). Também é possível especificar opções adicionais de configuração, rede e segurança ao implantar uma função.
Para ver uma referência completa sobre o comando de implantação e as sinalizações dele, consulte a documentação
gcloud functions deploy
.Para ver alguns exemplos de comandos de implantação, consulte Exemplos de linha de comando.
Implante na máquina local
Nesta seção, descrevemos como usar a CLI gcloud para implantar uma função do código-fonte localizado na máquina local.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Siga as instruções de implantação acima usando o comando
gcloud functions deploy
.Para a flag
--source
, especifique um caminho do sistema de arquivos local até o diretório raiz do código-fonte da função. Consulte Estrutura do diretório de origem. O diretório de trabalho atual será usado se esta sinalização for omitida.Também é possível usar a sinalização
--stage-bucket
para especificar um bucket do Cloud Storage para fazer upload do código-fonte como parte da implantação.Durante o upload do código-fonte, o Cloud Run functions exclui arquivos desnecessários usando o arquivo
.gcloudignore
.-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Siga as instruções de implantação acima usando o comando
gcloud functions deploy
.Para a sinalização
--source
, especifique um caminho do Cloud Storage, começando comgs://
. O objeto no caminho precisa ser um arquivo ZIP com o código-fonte da função. Os arquivos de origem da função precisam estar localizados na raiz do arquivo ZIP. Consulte Estrutura do diretório de origem.- A função usa o Node.js 22.
- O código-fonte está no diretório de trabalho atual (
.
). - O ponto de entrada no código é chamado de
myHttpFunction
. - A função gerencia eventos de publicação de mensagens do Pub/Sub.
- A função usa o Python 3.12.
- O código-fonte está no Cloud Storage no caminho
gs://my-bucket/my_function_source.zip
. - O ponto de entrada no código é chamado de
pubsub_handler
. - A função gerencia eventos de exclusão de objetos do Cloud Storage.
- A função usa o Java 17.
- O código-fonte está localizado localmente no caminho
./functions/storage-function
. - O ponto de entrada no código é chamado de
myproject.StorageFunction
. - Veja detalhes sobre gatilhos do Cloud Run functions.
- Saiba mais sobre o processo de build do Cloud Run functions.
- Conheça outras opções de configuração do Cloud Run functions.
- Saiba como proteger o Cloud Run functions.
Implantar do Cloud Storage
Nesta seção, descrevemos como usar a CLI gcloud para implantar uma função do código-fonte localizado em um bucket do Cloud Storage. O código-fonte precisa ser empacotado como um arquivo ZIP.
Para que o Cloud Run functions leia em um bucket do Cloud Storage, conceda a permissão storage.objects.get
à conta que executa a implantação.
Consulte Usar permissões do IAM na documentação do Cloud Storage para ver informações sobre como controlar o acesso aos buckets.
Com essa permissão, é possível implantar uma função do Cloud Storage:
Exemplos de linha de comando
Nesta seção, mostramos os comandos de implantação para alguns exemplos de cenários de implantação.
Para saber mais sobre os diferentes gatilhos compatíveis com as funções do Cloud Run, consulte Gatilhos do Cloud Run functions.
Função HTTP do código-fonte local
Suponha que você tenha uma função HTTP da seguinte maneira:
Para implantar o Cloud Run functions com o nome my-http-function
na região us-central1
, use o seguinte comando:
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs22 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
Função Pub/Sub do código-fonte no Cloud Storage
Suponha que você tenha uma função orientada a eventos da seguinte maneira:
Para implantar a função no Cloud Run functions (2ª geração) com o nome
my-pubsub-function
na região europe-west1
e que a função
seja acionada por mensagens no tópico do Pub/Sub my-topic
, use o
seguinte comando:
gcloud functions deploy my-pubsub-function \
--no-gen2 \
--region=europe-west1 \
--runtime=python312 \
--source=gs://my-bucket/my_function_source.zip \
--entry-point=pubsub_handler \
--trigger-topic=my-topic
Função do Cloud Storage pelo código-fonte local
Suponha que você tenha uma função orientada a eventos da seguinte maneira:
Para implantar a função no Cloud Run functions (2ª geração) com o nome
my-storage-function
na região asia-northeast1
e fazer com que a função
seja acionada por eventos no bucket do Cloud Storage my-bucket
, use o seguinte comando:
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete