Arquivo de configuração
O arquivo de configuração do Vonage Cloud Runtime (vcr.yml), fornece informações à plataforma sobre como depurar e implantar seu aplicativo. Trata-se de um arquivo YAML que contém objetos que permitem configurar onde suas instâncias serão implantadas, a qual aplicação da Vonage você está conectado e assim por diante. Aqui está um exemplo de arquivo de configuração:
project:
name: app
instance:
name: dev
runtime: nodejs22
region: aws.use1
application-id: 773c2b45-c20a-4d6b-8afe-24ce29ba6f92
entrypoint: [node, index.js]
build-script: "./build.sh"
capabilities:
- voice
- messages-v1
environment:
- name: VONAGE_NUMBER
value: "44700000000"
- name: INTEGRATION_API_KEY
secret: MY_SECRET_API_KEY
secrets:
- MY_SECRET_API_KEY
debug:
name: debug
application-id: 884c2b45-c20a-4d6b-8afe-24ce29ba6f93
environment:
- name: DEBUG_VONAGE_NUMBER
value: "4471111111"
entrypoint: [nodemon, --inspect, index.js]
preserve-data: false
Projeto
Um projeto é um espaço de nomes para agrupar instâncias.
Nome
name é um identificador único em forma de string para o seu projeto. É possível ter várias instâncias dentro de um projeto, em uma relação de “um projeto para várias instâncias”. Por exemplo, uma instância para executar seu código de produção, uma instância para executar seu código de desenvolvimento e uma instância para o ambiente de teste.
Para ter várias instâncias, crie um novo arquivo de configuração, por exemplo: prod.yml, e certifique-se de que o nome do projeto seja o mesmo. Para implantar arquivos de configuração diferentes, você pode passar os caminhos desses arquivos para o comando da CLI de implantação.
Instância
Uma instância é o seu código em execução na plataforma Vonage Cloud Runtime. Para executar seu código, a plataforma precisa de algumas informações sobre onde e como executá-lo.
Nome
name é um identificador exclusivo, na forma de uma sequência de caracteres, para a sua instância. Isso permite que você as diferencie quando houver várias instâncias no seu projeto. O nome da instância não influencia em qual ambiente ela será executada; isso é controlado pelo region.
Tempo de execução
runtime é a linguagem com a qual você desenvolveu seu código-fonte; as opções disponíveis são:
nodejs18nodejs22nodejs24python3python3aipython314go119go126java21ruby3.3php8
Região
region é onde a instância será executada. As regiões disponíveis no momento são:
- UE -
aws.euw1 - EUA -
aws.use1 - APAC (Cingapura) -
aws.apse1 - APAC (Sydney) -
aws.apse2
ID do aplicativo
application-id é o ID do aplicativo da Vonage ao qual a instância será conectada; isso permitirá que o Vonage Cloud Runtime configure os callbacks do aplicativo para você e acesse os números vinculados.
Ponto de entrada
entrypoint é usado para dar instruções ao Vonage Cloud Runtime sobre como executar seu aplicativo. entrypoint recebe uma matriz de strings que é então executada para iniciar seu aplicativo. Por exemplo, para executar meu aplicativo, eu usaria:
node index.js
Isso ficará assim:
entrypoint: [node, index.js]
O primeiro item é o comando a ser executado, seguido por quaisquer opções ou parâmetros.
Script de compilação
build-script permite que você especifique um script para o VCR executar durante a compilação do seu aplicativo. O script de compilação é executado antes do seu entrypoint o comando é executado. Aqui está um exemplo de script de compilação para um projeto em JavaScript e NPM:
Recursos
capabilities para mapear os recursos com o mesmo nome nos Aplicativos da Vonage, as opções disponíveis são:
voicemessages-v1rtc
Isso permite que o Vonage Cloud Runtime gerencie os webhooks para esses recursos. Para receber os webhooks, você pode usar a função correspondente no SDK do Vonage Cloud Runtime. Consulte a documentação do Voz, Mensagens e Conversa (RTC) prestadores de serviços para obter mais informações.
Meio ambiente
environment permite que você, opcionalmente, passe variáveis de ambiente para o seu aplicativo. O Vonage Cloud Runtime irá inserir as variáveis de ambiente para você quando você executar vcr debug ou quando seu aplicativo for implantado no Vonage Cloud Runtime. Por exemplo, VONAGE_NUMBER o código acima estaria disponível da seguinte forma:
process.env.VONAGE_NUMBER;
O Vonage Cloud Runtime também insere algumas variáveis de ambiente por padrão para você. Isso inclui itens como o ID do aplicativo Vonage e a chave privada. Para obter a lista completa, consulte o guia de implantação.
Segredos
Você pode expor à instância os segredos que já criou por meio da CLI de duas maneiras.
Usando o secrets lista — o segredo é exposto diretamente como uma variável de ambiente usando seu próprio nome:
instance:
secrets:
- MY_API_KEY
- DATABASE_PASSWORD
MY_API_KEY ficaria então disponível como process.env.MY_API_KEY.
Usando o environment objeto — o segredo é associado a um nome de variável específico:
instance:
environment:
- name: API_KEY
secret: MY_API_KEY
API_KEY ficaria então disponível como process.env.API_KEY.
Para obter mais informações sobre como criar e gerenciar segredos, consulte o Guia sobre segredos do Vonage Cloud Runtime.
Percurso de avaliação de saúde
health-check-path permite que você personalize o caminho usado pela plataforma para verificar o estado de funcionamento da sua instância. O caminho padrão é /_/health. O endpoint deve retornar um status HTTP 200.
instance:
health-check-path: /_/health
Para obter mais informações sobre a exigência de exame médico, consulte o guia de implantação.
Segurança
security permite que você controle o acesso aos endpoints do seu aplicativo. Por padrão, todos os endpoints são acessíveis publicamente. Você pode definir um nível de acesso padrão e adicionar substituições específicas para cada caminho.
instance:
security:
access: private
override:
- path: "/webhooks/*"
access: public
- path: "/api/**"
access: authenticated
auth-method: vonage_basic
Os níveis de acesso disponíveis são:
public— não é necessária autenticaçãoprivate— não acessível de fora da plataformaauthenticated— requer autenticação por meio deauth-method
O único compatível auth-method é vonage_basic.
Os padrões de caminho aceitam dois caracteres curinga:
*— corresponde a um único segmento de caminho (por exemplo,/users/*/profile)**— corresponde a vários segmentos de caminho (por exemplo,/api/**)
Observação: os callbacks de webhook da Vonage devem ser configurados para public para que a plataforma da Vonage possa entrar em contato com eles.
Escalonamento
scaling permite que você controle o número mínimo e máximo de réplicas que a plataforma executará para a sua instância.
instance:
scaling:
min-scale: 1
max-scale: 5
Cenário min-scale para 1 ou superior mantém pelo menos uma réplica em execução o tempo todo, evitando inicializações a frio. O valor mínimo padrão é 0 (ajuste para zero quando estiver inativo).
Domínios
domains permite que você configure um ou mais nomes de domínio personalizados para sua instância. Antes de adicionar um domínio, crie um registro CNAME no DNS apontando para custom.[region].runtime.vonage.cloud.
instance:
domains:
- api.myapp.example.com
Depuração
O objeto de depuração fornece informações à CLI do Vonage Cloud Runtime sobre como executar seu aplicativo no modo de depuração. Para obter mais informações sobre depuração, consulte o Guia de depuração do Vonage Cloud Runtime.
Nome
name permite que você atribua um nome ao seu depurador, de modo que a URL de depuração gerada seja estática, em vez de aleatória, quando o depurador for iniciado.
ID do aplicativo
Isso permite que você especifique um ID de aplicativo da Vonage diferente do da sua instância.
Meio ambiente
environment na seção de depuração funciona da mesma forma que ambiente da instância, mas só se aplica quando o programa está em execução vcr debug. Isso permite que você utilize diferentes variáveis de ambiente localmente, sem afetar sua instância implantada.
debug:
environment:
- name: LOG_LEVEL
value: "debug"
- name: API_KEY
secret: DEV_API_KEY
Ponto de entrada
entrypoint para depuração, funciona da mesma forma que o ponto de entrada da instância. Isso oferece a flexibilidade de ter um fluxo de trabalho de depuração separado, incluindo, por exemplo, um monitor de arquivos para reiniciar o aplicativo quando forem feitas alterações:
nodemon --inspect index.js
Fica assim:
entrypoint: [nodemon, --inspect, index.js]
Preservar dados
preserve-data permite que você mantenha os dados armazenados com Estado da instância entre as execuções do depurador. O valor padrão é falso.