Esta página foi traduzida pela API Cloud Translation.
Switch to English

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 ferramenta de linha de comando gcloud.

  • 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. Use a imagem gcloud como uma etapa de build no arquivo de configuração para invocar os comandos gcloud na imagem. Os argumentos inseridos nessa etapa de compilação transmitidos diretamente para a ferramenta gcloud, o que permite executar qualquer comando gcloud nessa 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.
    • --source=. indica que o código-fonte está no diretório de trabalho atual.

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      args:
      - functions
      - deploy
      - [FUNCTION_NAME]
      - --source=.
      - --trigger-http
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/cloud-builders/gcloud",
         "args": [
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--source=.",
            "--trigger-http"
         ]
       }
      ]
    }
    

    Em que:

    • [FUNCTION_NAME] é o nome do Cloud Functions que você está implantando;
    • --trigger-http é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).

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

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

     gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    Em que:

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

    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/cloud-builders/gcloud'
      args:
      - functions
      - deploy
      - [FUNCTION_NAME]
      - --source=.
      - --trigger-http
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/cloud-builders/gcloud",
         "args": [
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--source=.",
            "--trigger-http"
         ]
       }
      ]
    }
    

    Em que:

    • [FUNCTION_NAME] é o nome do Cloud Functions que você está implantando;
    • --trigger-http é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).
  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 de build: escolha o arquivo de configuração de 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