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:

  1. 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úmero

    • A 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.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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.

  3. 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:

    1. In the Google Cloud console, activate Cloud Shell.

      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.

    2. 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 com gs://. 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.

    3. 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:

      • 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.

      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:

      • 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.

      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:

      • 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.

      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
      

      Próximas etapas