Implemente uma função

Este guia mostra como implementar uma função a partir do código fonte através do comando gcloud functions. Para saber como implementar uma função através do comando gcloud run, consulte o artigo Implemente uma função do Cloud Run através da CLI gcloud.

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

Para uma introdução sobre o tipo de funções que pode implementar, consulte o artigo Escreva funções do Cloud Run.

Os utilizadores que implementam funções têm de ter a função do IAM Cloud Functions Developer ou uma função que inclua as mesmas autorizações. Consulte também a secção Configuração adicional para implementaçã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 implementar 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 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. O nome do serviço do Cloud Run criado para a sua função substitui os sublinhados por hífenes e as letras maiúsculas são convertidas em minúsculas. Por exemplo, o nome Function_1 é atribuído a function-1 no Cloud Run.

    • A flag --region especifica a região na qual implementar a sua função. Consulte a secção Localizações para ver uma lista das regiões suportadas pelo Cloud Run.

    • A flag --runtime especifica o tempo de execução do idioma que a sua função usa. Consulte o artigo Suporte de tempo de execução para ver uma lista dos IDs de tempo de execução suportados.

    • A flag --source especifica a localização do código-fonte da sua função.

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

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

      Para uma referência completa sobre o comando de implementação e as respetivas flags, consulte a gcloud functions deploy documentação.

      Para mais detalhes acerca das gcloud functions deployflags de configuração, consulte a documentação do Cloud Run.

  3. Quando a implementação termina com êxito, as funções aparecem com uma marca de verificação verde na página de vista geral do Cloud Run na Google Cloud consola.

    A implementação inicial de uma função pode demorar vários minutos, enquanto a infraestrutura subjacente é aprovisionada. A nova implementação de uma função existente é mais rápida e o tráfego recebido é migrado automaticamente para a versão mais recente.

    URL do ponto final HTTP

    Quando cria uma função com o comando gcloud functions ou a API Cloud Functions v2, por predefinição, a função tem um cloudfunctions.net URL do ponto final HTTP. Se usar esta função e a implementar no Cloud Run, a função também recebe um URL de run.appponto final HTTP. No entanto, as funções criadas no Cloud Run não têm um cloudfunctions.net URL do ponto final HTTP. Um URL cloudfunctions.net e um URL run.app de uma função comportam-se exatamente da mesma forma. São intermutáveis e são usados para acionar a sua função.

    Exemplos do Terraform

    Para ver exemplos de como implementar funções com o Terraform, consulte o exemplo de HTTP do Terraform e o exemplo de Pub/Sub do Terraform.

    Configure a rede

    As funções criadas com a API Cloud Functions v2 (por exemplo, através da gcloud functions, da API REST ou do Terraform) podem ser geridas com a API Cloud Run Admin, bem como com a API Cloud Functions v2.

    Para saber como gerir redes para funções, incluindo como encaminhar o tráfego da rede VPC, consulte as práticas recomendadas para redes do Cloud Run.

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

    A implementação de funções no Cloud Run é semelhante aos passos descritos neste documento, mas com algumas vantagens adicionais: