Implantar uma função

Neste guia, mostramos como implantar uma função a partir do código-fonte usando o comando gcloud functions. Para saber como implantar uma função usando o comando gcloud run, consulte Implantar uma função do Cloud Run usando a CLI gcloud.

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

Para uma introdução sobre o tipo de funções que você pode implantar, consulte Escrever funções do Cloud Run.

Os usuários que implantam funções precisam ter o papel do IAM de Desenvolvedor do Cloud Functions ou um papel que inclua as mesmas permissões. Consulte também Outras configurações para implantação.

  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. Use o comando gcloud functions deploy para implantar uma função:

    gcloud functions deploy YOUR_FUNCTION_NAME \
       --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 deve começar com uma letra, seguida por até 62 letras, números, hífens e sublinhados, e terminar com uma letra ou um número O nome do serviço do Cloud Run que é criado para a função substitui os sublinhados por hífens, e as letras maiúsculas são convertidas em minúsculas. Por exemplo, Function_1 vai receber o nome function-1 no Cloud Run.

    • A sinalização --region especifica a região em que a função será implantada. Consulte Locais para conferir uma lista de regiões compatíveis com o Cloud Run.

    • A sinalização --runtime especifica o ambiente de execução da linguagem que a função usa. Consulte Suporte ao ambiente de execução para conferir uma lista de IDs de ambiente de execução compatíveis.

    • A sinalização --source especifica o local do código-fonte da função.

    • 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. Para mais informações, consulte Ponto de entrada de função.

    • 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)
      --trigger-topic=YOUR_PUBSUB_TOPIC Acionar a função quando uma mensagem for publicada no tópico especificado do Pub/Sub.
      --trigger-bucket=YOUR_STORAGE_BUCKET Acionar a função quando um objeto é criado ou substituído no bucket especificado do Cloud Storage.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Acione a função com o Eventarc quando um evento que corresponde aos filtros especificados ocorrer.

      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 mais detalhes sobre as flags de configuração gcloud functions deploy, consulte a documentação do Cloud Run.

Quando a implantação for concluída, as funções vão aparecer com uma marca de seleção verde na página de visão geral do Cloud Run no consoleGoogle Cloud .

A implantação inicial de uma função pode levar vários minutos, enquanto a infraestrutura subjacente é provisionada. A reimplantação de uma função existente é mais rápida, e o tráfego de entrada é migrado automaticamente para a versão mais recente.

URL do endpoint HTTP

Quando você cria uma função com o comando gcloud functions ou a API Cloud Functions v2, por padrão, a função tem um URL de endpoint HTTP cloudfunctions.net. Se você implantar essa função no Cloud Run, ela também vai receber um URL de endpoint HTTP run.app. No entanto, as funções criadas no Cloud Run não têm um URL de endpoint HTTP cloudfunctions.net. O URL cloudfunctions.net e o URL run.app de uma função se comportam da mesma maneira. Eles são intercambiáveis e são usados para acionar a função.

Exemplos do Terraform

Para conferir exemplos de como implantar funções usando o Terraform, consulte o exemplo HTTP do Terraform e o exemplo do Pub/Sub do Terraform.

Configurar rede

As funções criadas usando a API Cloud Functions v2 (por exemplo, usando gcloud functions, a API REST ou o Terraform) podem ser gerenciadas com a API Cloud Run Admin e a API Cloud Functions v2.

Para saber mais sobre como gerenciar redes para funções, incluindo como rotear o tráfego de rede VPC, consulte as Práticas recomendadas para redes do Cloud Run.

Saiba como implantar funções do Cloud Run no Cloud Run

A implantação de funções no Cloud Run é semelhante às etapas descritas neste documento, mas com algumas vantagens adicionais: