Implantação

O Vonage Cloud Runtime permite que você crie rapidamente uma instância em execução na plataforma por meio da implantação. A implantação agrupa seu código-fonte com um arquivo de configuração, criando assim um pacote. O pacote é então enviado para a plataforma e se torna uma instância em execução.

Arquivo de configuração

Os arquivos de configuração fornecem informações à plataforma sobre como depurar e implantar seu aplicativo. Aqui está um exemplo de arquivo de configuração:

  • O nome do projeto é o namespace exclusivo do seu projeto, que pode conter várias instâncias.
  • O nome da instância é um identificador exclusivo para a sua instância.
  • region é onde a instância será executada.
  • entrypoint fornece à plataforma Vonage Cloud Runtime informações sobre como iniciar seu aplicativo.
  • build-script permite que você especifique um script a ser executado enquanto a plataforma compila seu aplicativo.

Você pode saber mais sobre as opções disponíveis na guia do arquivo de configuração.

Variáveis de ambiente injetadas

Ao implantar seu projeto no Cloud Runtime (ou ao usar vcr debug), a plataforma irá inserir algumas variáveis de ambiente para você, juntamente com o environment objeto do seu arquivo de configuração.

VCR_PORT
VCR_REGION
VCR_DEBUG
VCR_CODE_DIR
VCR_REGION_ID
VCR_PRIVATE_KEY
VCR_API_REGION_ID
VCR_API_ACCOUNT_ID
VCR_API_ACCOUNT_SECRET
VCR_API_APPLICATION_ID
VCR_INSTANCE_PUBLIC_URL
VCR_INSTANCE_SERVICE_NAME

Endereço e porta do aplicativo

Seu aplicativo deve ficar à escuta na porta fornecida pelo VCR_PORT variável de ambiente e vincular a 0.0.0.0. O VCR direciona o tráfego de entrada por meio de um proxy interno — vinculando-se a localhost ou 127.0.0.1 fará com que seu aplicativo fique inacessível.

Node.js (Express):

const port = process.env.VCR_PORT || 8080;
app.listen(port, '0.0.0.0');

Python (FastAPI):

Vá:

Java (Spring Boot):

Ruby (Sinatra):

PHP:

Percurso de avaliação de saúde

A plataforma Vonage Cloud Runtime espera uma rota, /_/health, que deve estar disponível em seu aplicativo e é usada para verificar o estado de funcionamento do aplicativo implantado. A rota não deve estar sujeita a nenhuma autenticação. Seu aplicativo será reiniciado se essa rota não retornar um código de status 200. Se a rota estiver ausente, isso fará com que a implantação falhe.

Você pode aproveitar essa oportunidade para realizar algumas verificações por conta própria e fazer com que a plataforma reinicie seu aplicativo automaticamente caso ele entre em um estado incorreto, retornando um código de status diferente de 200 em até 30 segundos.

Node.js (Express):

app.get('/_/health', (req, res) => res.sendStatus(200));

Node.js (Fastify):

fastify.get('/_/health', async () => ({ status: 'ok' }));

Python (Flask):

Python (FastAPI):

Vá:

Java (Spring Boot):

@RestController
public class HealthController {
    @GetMapping("/_/health")
    public ResponseEntity<String> health() {
        return ResponseEntity.ok("OK");
    }
}

Ruby (Sinatra):

PHP:

if ($_SERVER['REQUEST_URI'] === '/_/health') {
    http_response_code(200);
    echo 'OK';
    exit;
}

Como fazer a implantação

Você pode fazer a implantação usando a CLI do Vonage Cloud Runtime. Para fazer a implantação, execute:

vcr deploy

Se você receber uma mensagem de erro informando que “as credenciais não foram encontradas”, execute vcr app generate-keys para regenerar as credenciais do seu aplicativo Vonage para o Vonage Cloud Runtime.

Este comando faz o seguinte:

  • Configura os callbacks do seu aplicativo Vonage conforme descrito no seu arquivo de configuração capabilities objeto.
  • Empacota o diretório atual.
  • Envia para a Cloud Runtime Platform.
  • Executa seu script de compilação, caso ele esteja definido no seu arquivo de configuração.
  • Se tudo der certo, execute o comando no seu entrypoint.

Para evitar o envio de arquivos grandes ou indesejados como parte da sua implantação, use um .vcrignore arquivo para excluí-los.

Por padrão, o comando `deploy` procurará um arquivo de configuração chamado vcr.yml no diretório atual. Para usar um arquivo de configuração diferente, você pode executar:

vcr deploy --filename <path/to/file>

Por exemplo, para implantar seu código atual com um arquivo de configuração chamado production.yml você executaria:

vcr deploy --filename production.yml

Implantação com uma ação do GitHub

Se você quiser integrar a implantação ao seu fluxo de trabalho do GitHub, pode adicionar uma GitHub Action para realizar a implantação por você. As principais etapas da ação consistem em fazer o checkout do seu código, instalar o CLI do Cloud Runtime, em seguida, execute o comando de implantação. Aqui está um exemplo de fluxo de trabalho que pressupõe que você esteja usando um script de compilação para lidar com os aspectos personalizados do seu projeto:

Você precisará substituir VONAGE_API_KEY, VCR_REGION, e VCR_SHORT_REGION com sua chave de API e os valores da sua região de destino:

Região VCR_REGION VCR_SHORT_REGION Ponto de conexão do GraphQL
UE Ocidental (Irlanda) euw1 eu https://api-eu.vonage.com/v1/vcr/euw1/api/graphql/v1/graphql
Leste dos EUA (Virgínia) use1 us https://api-us.vonage.com/v1/vcr/use1/api/graphql/v1/graphql
AP Sudeste (Cingapura) apse1 ap https://api-ap.vonage.com/v1/vcr/apse1/api/graphql/v1/graphql
AP Sudeste (Sydney) apse2 ap https://api-ap.vonage.com/v1/vcr/apse2/api/graphql/v1/graphql

Esse fluxo de trabalho é executado manualmente, mas você pode editá-lo para que seja executado quando os PRs forem fechados e assim por diante. Você pode saber mais sobre o GitHub Actions na Documentação sobre ações.

Solução de problemas na implantação

Você pode receber uma mensagem de erro “credenciais não encontradas” se a plataforma Vonage Cloud Runtime não tiver acesso às credenciais do seu aplicativo Vonage. É possível gerar um novo par de chaves privadas usando a CLI:

vcr app generate-keys --app-id <app-id> 

Visualize sua implantação

Para analisar mais detalhadamente seu projeto e suas implantações, você pode usar o Painel do Vonage Cloud Runtime.

Screenshot of the Vonage Cloud Runtime dashboard home page

Ao clicar na sua instância implantada, você terá acesso aos registros, eventos e histórico de implantação. Por exemplo, a aba “Histórico” mostrará o histórico de implantação dessa instância:

Screenshot of an instance's history page

Se você implantar mais de uma instância para o seu projeto, todas elas serão exibidas no painel:

Screenshot of the cloud runtime dashboard showing multiple instances

Este é um projeto chamado vapi, que possui dois arquivos de configuração. Um desses arquivos de configuração contém uma instância chamada dev e o outro possui uma instância chamada prod. Isso permite que você tenha várias instâncias executando o mesmo código, mas em ambientes diferentes.

Remover uma instância

Se você quiser remover uma instância implantada, pode usar o comando `instance remove` da CLI do Vonage Cloud Runtime:

vcr instance remove --project-name <project-name> --instance-name <instance-name> 

Então, para remover o dev No caso da captura de tela acima, você executaria:

vcr instance remove --project-name vapi --instance-name dev

Você também pode remover uma instância usando o ID da instância:

vcr instance remove --id <instance-id>

AVISO: Esta ação é irreversível! Os estados e agendadores associados também serão excluídos permanentemente.

Listar instâncias

Para ver todas as instâncias implantadas na sua Account, execute:

vcr instance list

Visualizar registros da instância

É possível obter os logs de uma instância implantada usando a CLI:

# Print the last logs by project and instance name vcr instance log --project-name <project-name> --instance-name <instance-name> # Print the last logs by instance ID vcr instance log --id <instance-id>

Registros de streaming

Use o --follow (-f) para transmitir continuamente novas entradas de log à medida que elas chegam, de forma semelhante a tail -f:

vcr instance log --project-name <project-name> --instance-name <instance-name> --follow

Pressione Ctrl+C para interromper a transmissão.

Filtragem de registros

Você pode restringir a saída do log usando estes parâmetros opcionais:

Bandeira Resumo Descrição
--history <n> Número de registros históricos a serem recuperados inicialmente (padrão: 300)
--log-level <level> -l Nível mínimo de registro: trace, debug, info, warn, error, fatal
--source-type <type> -s Filtrar por fonte: application ou provider

Exemplos:

# Show only errors and above, streaming vcr instance log -p <project-name> -n <instance-name> --log-level error --follow # Show only application logs (exclude provider logs) vcr instance log -p <project-name> -n <instance-name> --source-type application # Fetch the last 500 entries and exit vcr instance log --id <instance-id> --history 500

Lista de endereços IP permitidos

Caso deseje restringir o acesso aos seus sistemas, os endereços IP do Vonage Cloud Runtime para cada região são:

UE Oeste - aws.euw1

  • 52.215.68.46
  • 46.137.9.43
  • 54.72.25.154

Oeste dos EUA - aws.use1

  • 54.87.47.119
  • 3.224.186.73
  • 35.153.45.51

Sudeste da Ásia-Pacífico - aws.apse1

  • 13.251.207.33
  • 52.76.50.31
  • 54.169.132.8

APAC Sudeste (Sydney) - aws.apse2

  • 52.62.122.28
  • 13.236.199.68
  • 52.63.14.36