Como implantar no Cloud Functions

Nesta página, explicamos como implantar aplicativos no Cloud Functions usando o Cloud Build. Se você não estiver familiarizado com o Cloud Build, leia os guias de início rápido e a visão geral da configuração de build primeiro.

O Cloud Functions é um ambiente de execução sem servidor para criar e conectar serviços em nuvem. Com ele, é possível escrever funções simples de única finalidade que são vinculadas a eventos emitidos pela infraestrutura e pelos serviços em nuvem. A função é acionada quando um evento em análise é disparado. Para mais informações sobre o Cloud Functions, leia a documentação do Cloud Functions.

Antes de começar

  • Ative a API Cloud Functions:

    Ativar a API Cloud Functions

  • Conceda o papel Desenvolvedor do Cloud Functions à conta de serviço do Cloud Build:

    1. Abra a página Configurações do Cloud Build:

      Abrir a página Configurações do Cloud Build

    2. Defina o status do papel Desenvolvedor do Cloud Functions como Ativo.

  • Para executar os comandos gcloud desta página, instale a CLI do Google Cloud.

  • Tenha em mãos o código-fonte do aplicativo que você quer compilar e implantar no Cloud Functions.

Como configurar a implantação

O Cloud Build permite que você use qualquer imagem de contêiner disponível publicamente para executar suas tarefas. Para fazer isso, especifique a imagem em uma step de build no arquivo de configuração do Cloud Build.

O Cloud Functions oferece o comando gcloud functions deploy, que implanta a função do diretório que contém o código dela. Você pode usar a imagem cloud-sdk como uma etapa do build no arquivo de configuração para invocar os comandos gcloud na imagem. Os argumentos passados para essa etapa de build são transmitidos diretamente para a CLI do Google Cloud, permitindo que você execute qualquer comando gcloud nesta imagem.

Para implantar um aplicativo no Cloud Functions, siga estas etapas:

  1. No diretório raiz do projeto, crie o arquivo de configuração do Cloud Build chamado cloudbuild.yaml ou cloudbuild.json.
  2. No arquivo de configuração:

    • Adicione um campo name e especifique a etapa de criação gcloud.
    • Adicione functions deploy ao campo args para invocar o comando gcloud functions deploy. Para ver as opções de configuração disponíveis, consulte a referência do gcloud functions deploy.
    • --source=. indica que o código-fonte está no diretório de trabalho atual.

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:

    • FUNCTION_NAME é o nome do Cloud Functions que você está implantando; Se você estiver atualizando uma função existente, esse valor precisará corresponder ao nome da função que você está atualizando.
    • FUNCTION_REGION é a região em que você está implantando o Cloud Functions. Para ver uma lista de regiões compatíveis, consulte Locais do Cloud Functions.
    • --trigger-http é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).
    • RUNTIME é o ambiente de execução em que a função será executada.

    Para mais informações sobre como usar o gcloud functions deploy, consulte a documentação do Cloud Functions.

  3. Inicie a compilação usando o arquivo de configuração criado na etapa anterior:

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:

    • CONFIG_FILE_PATH é o caminho para o arquivo de configuração da compilação;
    • SOURCE_DIRECTORY é o caminho ou o URL do código-fonte.
    • REGION é uma das regiões de compilação compatíveis.

    Se você não especificar CONFIG_FILE_PATH e SOURCE_DIRECTORY no comando gcloud builds submit, o Cloud Build presumirá que o arquivo de configuração e o código-fonte estão no diretório de trabalho atual.

Implantação contínua

É possível automatizar a implantação do software no Cloud Functions criando gatilhos do Cloud Build. Configure os acionadores para criar e implantar imagens sempre que atualizar o código-fonte.

Para automatizar a implantação no Cloud Functions:

  1. Na raiz do repositório, adicione um arquivo de configuração com etapas para invocar o comando gcloud functions deploy:

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:

    • FUNCTION_NAME é o nome do Cloud Functions que você está implantando; Se você estiver atualizando uma função existente, esse valor precisará corresponder ao nome da função que você está atualizando.
    • FUNCTION_REGION é a região em que você está implantando o Cloud Functions. Para ver uma lista de regiões compatíveis, consulte Locais do Cloud Functions.
    • --trigger-http é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).
    • RUNTIME é o ambiente de execução em que a função será executada.
  2. Crie um gatilho de compilação com o arquivo de configuração criado na etapa anterior:

    1. Abra a página Gatilhos no Console do Google Cloud:

      Abrir a página "Gatilhos"

    2. Selecione o projeto no menu suspenso do seletor de projetos na parte superior da página.

    3. Clique em Abrir.

    4. Clique em Criar gatilho.

      Na página Criar gatilho, especifique as seguintes configurações:

      1. Insira um nome para o gatilho.

      2. Selecione o evento de repositório para iniciar o gatilho.

      3. Selecione o repositório que contém o código-fonte e o arquivo de configuração de build.

      4. Especifique o regex do nome da ramificação ou da tag que iniciará o gatilho.

      5. Configuração: escolha o arquivo de configuração do build que você criou anteriormente.

    5. Clique em Criar para salvar o gatilho de compilação.

A qualquer momento que você enviar um novo código ao repositório, acionará automaticamente uma build e implantará no Cloud Functions.

Para mais informações sobre como criar gatilhos do Cloud Build, consulte Como criar e gerenciar gatilhos de build.

A seguir