Consulte os conectores compatíveis com o Application Integration.
Criar um serviço da Web
Nesta página, descrevemos como criar um serviço da Web na VM usando o framework da Web Gin, escrito em Golang. Você pode criar o serviço da Web em qualquer outro framework que quiser usar.
- Para fazer o download do pacote Go na VM, execute o seguinte comando:
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
- Instale o Go na VM. Para mais informações, consulte Instalar o Go.
- Para criar um diretório para o serviço da Web, execute o seguinte comando:
mkdir SERVICE_REPO cd SERVICE_REPO
Outras considerações
Ao criar um serviço da Web, você precisa estar ciente das seguintes considerações:
- As entradas necessárias durante a criação da VM estão disponíveis como variáveis de ambiente e têm o seguinte prefixo:
CONNECTOR_ENV_
. - Ao configurar o serviço da Web, use as variáveis de ambiente para ler esses valores.
- Apenas os valores necessários para configurar o serviço da Web precisam ser usados como entrada durante a criação da VM.
- A porta do serviço precisa ser usada como entrada da variável CONNECTOR_ENV_PORT.
- Use outras variáveis de ambiente para entradas opcionais.
- Você também pode receber entradas durante a criação da conexão. É possível definir esses campos ao criar o conector personalizado e transmiti-los como caminho, consulta ou cabeçalhos em cada chamada de API.
- Verifique se o servidor está sendo executado no localhost.
Logging
Registre as informações necessárias e envie os registros para o Cloud Logging. Isso ajuda os consumidores do conector a rastrear e depurar falhas. Para publicar registros no Cloud Logging, use o seguinte cliente do Cloud Logging disponível em Go: https://pkg.go.dev/cloud.google.com/go/logging#NewClient
Inicialize o logger na função principal e adicione um middleware no Gin para rastrear todas as solicitações recebidas. É necessário rastrear o método, o caminho, o status e a latência de uma solicitação. Para filtrar os registros, use a gravidade adequada ao fazer o registro. No serviço da Web, leia o nível de registro da variável de ambiente. O nível de registro é considerado uma entrada opcional durante a criação da VM. Por padrão, os registros de informações podem ser usados. Estes são os níveis de registro:
- DEBUG: registra todas as partes da solicitação, incluindo os rastreamentos de solicitação/resposta HTTP.
- INFO: registra a inicialização e o encerramento do serviço, solicitações e outras informações.
- ERROR: registra falhas de solicitação, exceções de formatação e outros erros.
Encerramento sem dificuldades
Configure o servidor para desligar normalmente e processar as solicitações em andamento. Para informações sobre como reiniciar ou interromper o servidor normalmente, consulte Reinicialização ou interrupção normal.
Simultaneidade
Os servidores Gin oferecem suporte inerente a solicitações simultâneas usando rotinas Go. Por padrão, um número indefinido de solicitações pode ser processado por rotinas do Go. No entanto, em alguns casos, quando as solicitações devem consumir muitos recursos, use pools de workers para restringir e armazenar em buffer as solicitações no servidor. Para mais informações, consulte Exemplo de pools de workers.
Testar e criar o binário
- Defina a porta e execute o servidor usando os seguintes comandos:
- Para verificar o servidor, execute o seguinte comando curl na VM:
curl -X POST -H "Content-Type: application/json" -H "X-Custom-Header: MyValue" -d '{"name": "Alice", "address": "123 Main St", "gender": "F"}' http://localhost:8081/postData/456
curl -v http://localhost:8081/getData -H "TestKey: MyValue"
- Crie o binário e use-o como a imagem da VM com o seguinte comando:
go build -o SERVICE_NAME
- Mova o binário para a pasta raiz usando o seguinte comando:
sudo cp SERVICE_NAME /opt
- Execute o serviço novamente para verificar se o binário está funcionando conforme o esperado usando o seguinte comando:
sudo chmod +x SERVICE_NAME ./SERVICE_NAME
EXPORT CONNECTOR_ENV_PORT = 8081 go get . go run .
Esses comandos agrupam as bibliotecas necessárias e executam o servidor.
Colocar o aplicativo em um contêiner
- Instale o Docker. Para mais informações, consulte Instalar o Docker.
- Crie um arquivo Docker para executar binários.
FROM alpine:latest WORKDIR /opt COPY . . CMD ["./SERVICE_NAME"]
- Crie o contêiner do conector usando o seguinte comando:
sudo docker build -t connector-container .
- Execute o contêiner do Docker. Defina
--restart=unless-stopped
para reiniciar o serviço em caso de falha inesperada.
Tarefa no nível do contêiner
Todos os registros em stdout podem ser encaminhados para o Cloud Logging usando o driver de registro gcplogs ao executar o contêiner do Docker. Isso ajuda a rastrear a inicialização ou falha ou encerramento inesperado do serviço.
Para encaminhar os registros ao Cloud Logging, execute o seguinte comando:sudo docker run --name connector-service -e CONNECTOR_ENV_PORT=$CONNECTOR_ENV_PORT -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT --restart=unless-stopped ----log-driver=gcplogs connector-container
A seguir
- Saiba como criar um conector personalizado.