Implemente uma função do Cloud Run (1.ª geração)
Este guia mostra como implementar uma função do Cloud Run de 1.ª geração antiga a partir do código fonte. Se estiver a criar uma nova função, consulte o Início rápido da consola no Cloud Run.
O processo de implementação usa o código-fonte e as definições de configuração e cria uma imagem executável que as funções do Cloud Run gerem automaticamente para processar pedidos à sua função.
Noções básicas de implementação
Os utilizadores que implementam funções do Cloud Run têm de ter a função do IAM Programador de funções do Cloud Run ou uma função que inclua as mesmas autorizações. Consulte também a secção Configuração adicional para implementação.
Implemente uma função através da CLI gcloud da seguinte forma:
Use o comando
gcloud functions deploy
para implementar 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 implementada. O nome da função tem de começar com uma letra, seguida de até 62 letras, números, hífenes ou sublinhados, e terminar com uma letra ou um número.A flag
--gen2
especifica que quer implementar em funções do Cloud Run. A partir de setembro de 2024, esta passa a ser a predefinição. Para implementar na 1.ª geração, use--no-gen2
.A flag
--region
especifica a região na qual implementar a sua função. Consulte o artigo Localizações para ver uma lista das regiões suportadas pelas funções do Cloud Run.A flag
--runtime
especifica o tempo de execução do idioma que a sua função usa. As funções do Cloud Run suportam vários tempos de execução. Consulte Tempos de execução para mais informações.A flag
--source
especifica a localização do código-fonte da sua função. Consulte as seguintes secções para ver detalhes:A flag
--entry-point
especifica o ponto de entrada para a sua função no código-fonte. Este é o código que vai ser executado quando a sua função for executada. O valor desta flag tem de ser um nome de função ou um nome de classe totalmente qualificado que exista no seu código fonte. Consulte o Ponto de entrada da função para mais informações.Para especificar o acionador da sua função, são necessárias flags adicionais (representadas como
TRIGGER_FLAGS
acima), consoante o acionador que quer usar:Sinalizadores de acionamento Descrição do acionador --trigger-http
Acionar a função com um pedido HTTP(S). Consulte as Acionadores HTTP para mais informações. --trigger-topic=YOUR_PUBSUB_TOPIC
Acionar a função quando uma mensagem é publicada no tópico do Pub/Sub especificado. Consulte os 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 contentor do Cloud Storage especificado. 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. A especificação de um recurso é obrigatória para alguns tipos de eventos. Consulte o artigo Acionadores suportados nas funções do Cloud Run (1.ª geração) para mais informações. Opcionalmente, pode especificar opções adicionais de configuração, rede e segurança quando implementa uma função.
Para uma referência completa sobre o comando de implementação e as respetivas flags, consulte a
gcloud functions deploy
documentação.Para ver alguns exemplos de comandos de implementação, consulte o artigo Exemplos de linha de comandos.
Implemente a partir da sua máquina local
Esta secção descreve como usar a CLI gcloud para implementar uma função a partir do código fonte localizado na sua 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 implementação acima através do comando
gcloud functions deploy
.Para a flag
--source
, especifique um caminho do sistema de ficheiros local para o diretório raiz do código fonte da função. Consulte a estrutura do diretório de origem. O diretório de trabalho atual é usado se esta flag for omitida.Opcionalmente, também pode usar a flag
--stage-bucket
para especificar um contentor do Cloud Storage para carregar o código fonte como parte da implementação.Durante o carregamento do código-fonte, as funções do Cloud Run excluem ficheiros desnecessários através do ficheiro
.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 implementação acima através do comando
gcloud functions deploy
.Para a flag
--source
, especifique um caminho do Cloud Storage, começando porgs://
. O objeto no caminho tem de ser um ficheiro ZIP que contenha o código fonte da função. Os ficheiros de origem da função têm de estar localizados na raiz do ficheiro ZIP. Consulte a estrutura do diretório de origem.- A função usa o Node.js 20.
- O código-fonte está localizado no diretório de trabalho atual (
.
). - O ponto de entrada no código tem o nome
myHttpFunction
. - A função processa eventos de publicação de mensagens do Pub/Sub.
- A função usa o Python 3.12.
- O código fonte encontra-se no Cloud Storage no caminho
gs://my-bucket/my_function_source.zip
. - O ponto de entrada no código tem o nome
pubsub_handler
. - A função processa eventos de eliminaçã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 tem o nome
myproject.StorageFunction
. - Veja detalhes sobre os acionadores de funções do Cloud Run.
- Saiba mais sobre o processo de criação de funções do Cloud Run.
- Explore opções de configuração adicionais das funções do Cloud Run.
- Saiba como proteger as funções do Cloud Run.
Implemente a partir do Cloud Storage
Esta secção descreve como usar a CLI gcloud para implementar uma função a partir do código fonte localizado num contentor do Cloud Storage. O código-fonte tem de ser embalado como um ficheiro ZIP.
Para que as funções do Cloud Run leiam a partir de um contentor do Cloud Storage, tem de conceder a autorização storage.objects.get
à conta que está a fazer a implementação.
Consulte o artigo Use autorizações de IAM na documentação do Cloud Storage para obter informações sobre o controlo do acesso a contentores.
Com esta autorização, pode agora implementar uma função a partir do Cloud Storage:
Exemplos de linhas de comandos
Esta secção mostra comandos de implementação para alguns cenários de implementação de exemplo.
Para ver detalhes sobre os diferentes acionadores suportados pelas funções do Cloud Run, consulte o artigo Acionadores de funções do Cloud Run.
Função HTTP a partir do código-fonte local
Suponhamos que tem uma função HTTP da seguinte forma:
Para implementar a função nas funções do Cloud Run 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=nodejs20 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
Função do Pub/Sub a partir do código-fonte no Cloud Storage
Suponhamos que tem uma função orientada por eventos da seguinte forma:
Para implementar a função nas funções do Cloud Run com o nome
my-pubsub-function
na região europe-west1
e fazer com que a função seja
acionada por mensagens no tópico 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 a partir do código fonte local
Suponhamos que tem uma função orientada por eventos da seguinte forma:
Para implementar a função nas funções do Cloud Run com o nome my-storage-function
na região asia-northeast1
e fazer com que a função seja acionada por eventos no contentor 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