Implementação em funções do Cloud Run

Esta página explica como implementar aplicações em funções do Cloud Run através do Cloud Build. Se for um utilizador recente do Cloud Build, leia os inícios rápidos e a vista geral da configuração de compilação primeiro.

As funções do Cloud Run são um ambiente de execução sem servidor para criar e ligar serviços na nuvem. Com as funções do Cloud Run, escreve funções simples de finalidade única que estão associadas a eventos emitidos a partir da sua infraestrutura e serviços na nuvem. A sua função é acionada quando é acionado um evento que está a ser monitorizado. Para mais informações sobre as funções do Cloud Run, leia a documentação das funções do Cloud Run.

Antes de começar

  • Ative a API Cloud Run Functions:

    Ative a API Cloud Run Functions

  • Conceda a função de programador de funções do Cloud Run à conta de serviço do Cloud Build:

    1. Na Google Cloud consola, aceda à página Autorizações do Cloud Build:

      Aceda a Autorizações

    2. Defina o estado da função Programador de funções do Cloud Run como Ativado.

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

  • Tenha à mão o código fonte da aplicação que quer criar e implementar nas funções do Cloud Run. O código fonte tem de estar armazenado num repositório, como os Cloud Source Repositories, o GitHub ou o Bitbucket.

Configurar a implementação

O Cloud Build permite-lhe usar qualquer imagem de contentor disponível publicamente para executar as suas tarefas. Pode fazê-lo especificando a imagem numa compilação stepno ficheiro de configuração do Cloud Build.

As funções do Cloud Run fornecem o comando gcloud functions deploy, que implementa a sua função a partir do diretório que contém o código da função. Pode usar a imagem cloud-sdk como um passo de compilação no seu ficheiro de configuração para invocar comandos gcloud na imagem. Os argumentos transmitidos a este passo de compilação são transmitidos diretamente à CLI do Google Cloud, o que lhe permite executar qualquer comando gcloud nesta imagem.

Para implementar uma aplicação nas funções do Cloud Run, siga os passos seguintes:

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

    • Adicione um campo name e especifique o passo de compilaçã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 gcloud functions deploy.
    • --source=. implica 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 dos marcadores de posição no ficheiro de configuração acima pelo seguinte:

    • FUNCTION_NAME é o nome das funções do Cloud Run que está a implementar. Se estiver a atualizar uma função existente, este valor tem de corresponder ao nome da função que está a atualizar.
    • FUNCTION_REGION é a região para a qual está a implementar funções do Cloud Run. Para ver uma lista das regiões suportadas, consulte o artigo Localizações das funções do Cloud Run.
    • --trigger-http é o tipo de acionador desta função, neste caso, um pedido HTTP (webhook).
    • RUNTIME é o tempo de execução no qual a função é executada.

    Para mais informações sobre a utilização de gcloud functions deploy, consulte a documentação das funções do Cloud Run.

  3. Inicie a compilação com o ficheiro de configuração criado no passo anterior:

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

    Substitua os valores dos marcadores de posição no ficheiro de configuração acima pelo seguinte:

    • CONFIG_FILE_PATH é o caminho para o ficheiro de configuração de compilação.
    • SOURCE_DIRECTORY é o caminho ou o URL para o código-fonte.
    • REGION é uma das regiões de compilação suportadas.

    Se não especificar um CONFIG_FILE_PATH e um SOURCE_DIRECTORY no comando gcloud builds submit, o Cloud Build assume que o ficheiro de configuração e o código fonte estão no diretório de trabalho atual.

Implementação contínua

Pode automatizar a implementação do seu software em funções do Cloud Run criando acionadores do Cloud Build. Pode configurar os acionadores para criar e implementar imagens sempre que atualizar o código fonte.

Para automatizar a implementação em funções do Cloud Run:

  1. Na raiz do repositório, adicione um ficheiro de configuração com passos 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 dos marcadores de posição no ficheiro de configuração acima pelo seguinte:

    • FUNCTION_NAME é o nome das funções do Cloud Run que está a implementar. Se estiver a atualizar uma função existente, este valor tem de corresponder ao nome da função que está a atualizar.
    • FUNCTION_REGION é a região para a qual está a implementar funções do Cloud Run. Para ver uma lista das regiões suportadas, consulte o artigo Localizações das funções do Cloud Run.
    • --trigger-http é o tipo de acionador desta função, neste caso, um pedido HTTP (webhook).
    • RUNTIME é o tempo de execução no qual a função é executada.
  2. Crie um acionador de compilação com o ficheiro de configuração criado no passo anterior:

    1. Abra a página Acionadores na Google Cloud consola:

      Abra a página Acionadores

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

    3. Clique em Criar acionador.

    4. No campo Nome, introduza um nome para o acionador.

    5. Em Região, selecione a região para o acionador.

    6. Em Evento, selecione o evento do repositório para iniciar o acionador.

    7. Em Origem, selecione o seu repositório e o nome da ramificação ou da etiqueta que vai iniciar o acionador. Para mais informações sobre como especificar que ramificações devem ser criadas automaticamente, consulte o artigo Criar um acionador de compilação.

    8. Em Configuração, selecione Ficheiro de configuração do Cloud Build (YAML ou JSON).

    9. No campo Localização do ficheiro de configuração do Cloud Build, escreva cloudbuild.yaml após /.

    10. Clique em Criar para guardar o acionador de compilação.

Sempre que enviar novo código para o seu repositório, aciona automaticamente uma compilação e uma implementação nas funções do Cloud Run.

Para mais informações sobre como criar acionadores do Cloud Build, consulte o artigo Criar e gerir acionadores de compilação.

O que se segue?