Usando o Cloud Run como um webhook para ações no Google

Nick Felker em Google Developers Follow 21 de maio · 4 min ler

é um novo produto do Google Cloud Platform que facilita a execução de seu aplicativo na nuvem como um contêiner sem precisar se preocupar com a infraestrutura. O Cloud Run é automaticamente escalável para atender às demandas de seus usuários. Semelhante a , o é "pay-per-use". Como parte do , você está qualificado para ganhar US $ 200,00 em créditos do Google Cloud por mês depois de publicar sua primeira ação.

As ações dos desenvolvedores do Google usam o para criar webhooks sem estado usando a Node.js. Para desenvolvedores que usam a , o lançamento do Cloud Run oferece uma nova maneira de desenvolver suas ações usando um back-end sem servidor no Google Cloud. Esta postagem explica como obter uma das amostras atuais e publicá-la usando o Cloud Run.

Configuração do projeto

Você pode começar com uma das amostras na organização Ações no Google GitHub. Neste post, a amostra que está sendo usada é , embora isso funcione para qualquer uma das amostras relacionadas.

Depois de clonar ou baixar o código-fonte, você pode seguir o README para criar um novo projeto no , carregar o agent.zip para o Dialogflow e abrir o projeto em um IDE ou editor de texto.

O projeto usa servlets HTTP para manipular solicitações e respostas. Para configurar seu projeto para usar a estrutura do , siga as etapas no início do Cloud Run para a linguagem de programação Java. Substitua a classe ActionsServlet por uma nova classe chamada ActionsApplication . Esta classe é mostrada no trecho de código abaixo:

O trabalho de manipular as solicitações e gerar respostas é feito pela classe SillyNameMakerApp . A classe ActionsApplication serve apenas para inicializar as solicitações de ação e enviar respostas.

Certifique-se de que o arquivo pom.xml esteja configurado corretamente para importar as dependências SpringBoot e Actions on Google, conforme mostrado abaixo:

Para empacotar seu aplicativo Springboot, você pode usar a ferramenta de contêiner de software livre . Certifique-se de atualizar o URL do do com o ID do seu projeto.

Desdobramento, desenvolvimento

Abra seu projeto no do . Certifique-se de antes de prosseguir.

Verifique se você fez o download do do . Você precisará instalar o complemento beta na interface da linha de comando, se ainda não o fez:

$ gcloud components install beta

$ gcloud components update

Depois de instalado, você está pronto para implantar seu aplicativo e conectá-lo ao Cloud Run e ao Dialogflow. Para fazer isso, siga estas etapas:

1. Crie seu contêiner usando o Jib, que, conforme configurado no pom.xml, o enviará ao Google Cloud Container Registry:

$ gcloud auth configure-docker

$ mvn jib:build

2. Implemente a imagem do contêiner no Cloud Run:

$ gcloud beta run deploy --image gcr.io/[PROJECT-ID]/helloworld --allow-unauthenticated --set-env-vars=”JAVA_TOOL_OPTIONS=-XX:MaxRAM=256m”

Depois de executar este comando, a resposta incluirá um URL.

Service [service-name] revision [service-name-00001] has been deployed and is serving traffic at

3. Copie este URL e volte para o console do Dialogflow. Na página Cumprimento , coloque este URL no campo URL do Webhook.

Agora, quando você usa o projeto de teste com o simulador Ações no Google, seu webhook será chamado com as respostas provenientes do seu contêiner. Você pode usar o para visualizar os registros de sua ação durante a execução.

Conclusão

Se você estiver interessado em criar uma ação com a biblioteca de ações Java na Google, você deve considerar o Cloud Run para o seu webhook. Ele é projetado para fornecer uma configuração fácil, ao mesmo tempo em que fornece a flexibilidade da linguagem de programação e da estrutura que você deseja. Visite a do Cloud Run para saber mais sobre como fazer com que funcione no seu projeto.

Quero mais? Vá até a comunidade Ações no Google para discutir Ações com outros desenvolvedores. Participe do programa da comunidade de desenvolvedores do Actions on Google e você poderá ganhar um crédito mensal de US $ 200 do Google Cloud e uma camiseta do Assistente ao publicar seu primeiro aplicativo.