Fichier de configuration

Le fichier de configuration de Vonage Cloud Runtime (vcr.yml), donne des informations à la plateforme sur la manière de déboguer et de déployer votre application. C'est un fichier YAML qui comporte des objets vous permettant de configurer où vos instances sont déployées, à quelle application Vonage vous êtes connecté, etc. Voici un exemple de fichier de configuration :

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

Projet

Un projet est un espace de noms permettant de regrouper des instances.

Nom

name est une chaîne d'identification unique pour votre projet. Vous pouvez avoir plusieurs instances au sein d'un projet, dans une relation d'un projet à plusieurs instances. Par exemple, une instance pour exécuter votre code de production, une instance pour exécuter votre code de développement et une instance pour la mise à disposition.

Pour avoir plusieurs instances, créez un nouveau fichier de configuration, par exemple prod.ymlet assurez-vous que le nom du projet est le même. Pour déployer différents fichiers de configuration, vous pouvez passer leurs chemins d'accès à la fonction commande CLI deploy.

Instance

Une instance est votre code qui s'exécute sur la plateforme Vonage Cloud Runtime. Pour exécuter votre code, la plateforme a besoin d'informations sur l'endroit où l'exécuter et comment l'exécuter.

Nom

name est une chaîne d'identification unique pour votre instance. Cela vous permet de faire la différence lorsque vous avez plusieurs instances dans votre projet. Le nom de l'instance n'a aucune incidence sur l'environnement dans lequel elle fonctionnera, qui est contrôlé par la directive region.

Temps d'exécution

runtime est le langage avec lequel vous avez construit votre code source, les options disponibles sont les suivantes :

  • nodejs18
  • nodejs22
  • nodejs24
  • python3
  • python3ai
  • python314
  • go119
  • go126
  • java21
  • ruby3.3
  • php8

Région

region est l'endroit où l'instance s'exécutera. Les régions actuellement disponibles sont les suivantes :

  • UNION EUROPÉENNE - aws.euw1
  • US - aws.use1
  • APAC (Singapour) - aws.apse1
  • APAC (Sydney) - aws.apse2

ID de l'application

application-id est l'identifiant de l'application Vonage à laquelle l'instance sera connectée, ce qui permettra à Vonage Cloud Runtime de définir les rappels de l'application pour vous et d'accéder aux numéros liés.

Point d'entrée

entrypoint est utilisé pour donner des ordres à Vonage Cloud Runtime sur la façon d'exécuter votre application. entrypoint prend un tableau de chaînes de caractères qui est ensuite exécuté pour démarrer votre application. Par exemple, pour lancer mon application, j'utiliserais :

node index.js

Il deviendra :

entrypoint: [node, index.js]

Le premier élément est la commande à exécuter, suivie d'éventuels drapeaux ou paramètres.

Script de construction

build-script vous permet de spécifier un script à exécuter par le VCR lors de la construction de votre application. Le script de construction est exécuté avant que votre entrypoint est appelée. Voici un exemple de script de construction pour un projet JavaScript et NPM :

#!/bin/bash npm ci --production

Capacités

capabilities aux capacités du même nom sur Vonage Applications, les options disponibles sont les suivantes :

  • voice
  • messages-v1
  • rtc

Cela permet à Vonage Cloud Runtime de gérer les webhooks pour ces capacités. Pour recevoir les webhooks, vous pouvez utiliser la fonction correspondante sur le SDK de Vonage Cloud Runtime. Voir la documentation de la fonction Voix, Messages et Conversation (RTC) pour plus d'informations.

Environnement

environment vous permet de transmettre facultativement des variables d'environnement à votre application. Vonage Cloud Runtime injectera les variables d'environnement pour vous lorsque vous exécuterez la commande vcr debug ou lorsque votre application est déployée dans Vonage Cloud Runtime. Par exemple, VONAGE_NUMBER de ce qui précède serait disponible en tant que :

process.env.VONAGE_NUMBER;

Vonage Cloud Runtime injecte également certaines variables d'environnement par défaut pour vous. Il s'agit notamment d'éléments tels que l'identifiant de l'application Vonage et la clé privée. Pour une liste complète, voir la page guide de déploiement.

Secrets

Vous pouvez exposer à l'instance les secrets que vous avez créés à l'aide de l'interface de programmation de deux manières.

L'utilisation de la secrets liste - le secret est exposé directement comme une variable d'environnement utilisant son propre nom :

instance:
    secrets:
        - MY_API_KEY
        - DATABASE_PASSWORD

MY_API_KEY serait alors disponible en tant que process.env.MY_API_KEY.

L'utilisation de la environment objet - le secret est associé à un nom de variable spécifique :

instance:
    environment:
        - name: API_KEY
          secret: MY_API_KEY

API_KEY serait alors disponible en tant que process.env.API_KEY.

Pour plus d'informations sur la création et la gestion des secrets, consultez la page Guide des secrets de Vonage Cloud Runtime.

Parcours du bilan de santé

health-check-path vous permet de personnaliser le chemin utilisé par la plateforme pour vérifier la santé de votre instance. Le chemin par défaut est /_/health. Le point d'accès doit renvoyer un état HTTP 200.

instance:
    health-check-path: /_/health

Pour plus d'informations sur l'obligation de réaliser un bilan de santé, voir le site internet de la Commission européenne. guide de déploiement.

Sécurité

security vous permet de contrôler l'accès aux points de terminaison de votre application. Par défaut, tous les points d'accès sont accessibles au public. Vous pouvez définir un niveau d'accès par défaut et ajouter des dérogations spécifiques aux chemins d'accès.

instance:
    security:
        access: private
        override:
            - path: "/webhooks/*"
              access: public
            - path: "/api/**"
              access: authenticated
              auth-method: vonage_basic

Les niveaux d'accès disponibles sont les suivants :

  • public - pas d'authentification requise
  • private - non accessible depuis l'extérieur de la plate-forme
  • authenticated - nécessite une authentification via auth-method

Le seul support auth-method est vonage_basic.

Les modèles de chemin d'accès prennent en charge deux caractères génériques :

  • * - correspond à un seul segment de chemin (par ex. /users/*/profile)
  • ** - correspond à plusieurs segments de chemin (par exemple /api/**)

Remarque : les rappels du webhook de Vonage doivent être réglés sur public afin que la plateforme Vonage puisse les atteindre.

Mise à l'échelle

scaling vous permet de contrôler le nombre minimum et maximum de répliques que la plateforme exécutera pour votre instance.

instance:
    scaling:
        min-scale: 1
        max-scale: 5

Paramètres min-scale à 1 ou plus permet de maintenir au moins une réplique en fonctionnement à tout moment, ce qui évite les démarrages à froid. Le minimum par défaut est de 0 (échelle à zéro au repos).

Domaines

domains vous permet de configurer un ou plusieurs noms de domaine personnalisés pour votre instance. Avant d'ajouter un domaine, créez un enregistrement DNS CNAME pointant vers custom.[region].runtime.vonage.cloud.

instance:
    domains:
        - api.myapp.example.com

Débogage

L'objet de débogage donne des informations à la CLI de Vonage Cloud Runtime sur la façon d'exécuter votre application en mode débogage. Pour plus d'informations sur le débogage, consultez la section Guide de débogage de Vonage Cloud Runtime.

Nom

name vous permet de donner un nom à votre débogueur afin que l'URL de débogage générée soit statique, plutôt qu'aléatoire au démarrage du débogueur.

ID de l'application

Cela vous permet de spécifier un ID d'application Vonage distinct de votre Instance.

Environnement

environment dans la section de débogage fonctionne de la même manière que environnement de l'instancemais ne s'applique qu'en cas d'exécution vcr debug. Cela vous permet d'utiliser localement différentes variables d'environnement sans affecter l'instance déployée.

debug:
    environment:
        - name: LOG_LEVEL
          value: "debug"
        - name: API_KEY
          secret: DEV_API_KEY

Point d'entrée

entrypoint pour le débogage fonctionne de la même manière que l'option point d'entrée de l'instance. Cela vous donne la possibilité d'avoir un flux de travail de débogage séparé, par exemple en incluant un observateur de fichiers pour redémarrer l'application lorsque des modifications sont apportées :

nodemon --inspect index.js

Devient :

entrypoint: [nodemon, --inspect, index.js]

Préserver les données

preserve-data vous permet de conserver les données stockées dans État de l'instance entre les exécutions du débogueur. Il est faux par défaut.