Konfigurationsdatei

Die Konfigurationsdatei der Vonage Cloud Runtime (vcr.yml), gibt der Plattform Informationen darüber, wie Sie Ihre Anwendung debuggen und einsetzen können. Es handelt sich um eine YAML-Datei mit Objekten, mit denen Sie konfigurieren können, wo Ihre Instanzen bereitgestellt werden, mit welcher Vonage-Anwendung Sie verbunden sind usw. Hier ist ein Beispiel für eine Konfigurationsdatei:

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

Projekt

Ein Projekt ist ein Namespace zur Gruppierung von Instanzen.

Name

name ist ein eindeutiger String-Bezeichner für Ihr Projekt. Sie können mehrere Instanzen innerhalb eines Projekts haben, in einer Beziehung von einem Projekt zu vielen Instanzen. Zum Beispiel eine Instanz, auf der Ihr Produktionscode läuft, eine Instanz, auf der Ihr Entwicklungscode läuft, und eine Instanz für das Staging.

Um mehrere Instanzen zu haben, erstellen Sie eine neue Konfigurationsdatei, z. B. prod.ymlund stellen Sie sicher, dass der Projektname derselbe ist. Um verschiedene Konfigurationsdateien einzusetzen, können Sie deren Dateipfade an die Funktion CLI-Befehl deploy.

Instanz

Eine Instanz ist Ihr Code, der auf der Vonage Cloud Runtime-Plattform ausgeführt wird. Um Ihren Code auszuführen, benötigt die Plattform einige Informationen darüber, wo und wie er ausgeführt werden soll.

Name

name ist ein eindeutiger String-Bezeichner für Ihre Instanz. Dies ermöglicht Ihnen die Unterscheidung, wenn Sie mehrere Instanzen in Ihrem Projekt haben. Der Name der Instanz hat keinen Einfluss darauf, in welcher Umgebung Ihre Instanz ausgeführt wird, dies wird durch die region.

Laufzeit

runtime die Sprache ist, mit der Sie Ihren Quellcode erstellt haben, stehen folgende Optionen zur Verfügung:

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

Region

region ist der Ort, an dem die Instanz ausgeführt wird. Die derzeit verfügbaren Regionen sind:

  • EU - aws.euw1
  • US - aws.use1
  • APAC (Singapur) - aws.apse1
  • APAC (Sydney) - aws.apse2

Applikation ID

application-id ist die Vonage Application ID, mit der die Instanz verbunden wird. Dies ermöglicht Vonage Cloud Runtime, die Rückrufe der Anwendung für Sie einzustellen und auf verknüpfte Numbers zuzugreifen.

Einstiegspunkt

entrypoint wird verwendet, um Vonage Cloud Runtime Befehle für die Ausführung Ihrer Anwendung zu erteilen. entrypoint nimmt ein String-Array, das dann ausgeführt wird, um Ihre Anwendung zu starten. Um meine Anwendung zu starten, würde ich zum Beispiel verwenden:

node index.js

Dies wird sich ändern:

entrypoint: [node, index.js]

Das erste Element ist der auszuführende Befehl, gefolgt von eventuellen Flags oder Parametern.

Skript erstellen

build-script können Sie ein Skript angeben, das VCR bei der Erstellung Ihrer Anwendung ausführen soll. Das Build-Skript wird ausgeführt, bevor Ihr entrypoint Befehl aufgerufen wird. Hier ist ein Beispiel für ein Build-Skript für ein JavaScript- und NPM-Projekt:

#!/bin/bash npm ci --production

Fähigkeiten

capabilities auf die gleichnamigen Funktionen von Vonage Applications abbilden, sind folgende Optionen verfügbar:

  • voice
  • messages-v1
  • rtc

Dies ermöglicht Vonage Cloud Runtime die Verwaltung der Webhooks für diese Funktionen. Um die Webhooks zu empfangen, können Sie die entsprechende Funktion im Vonage Cloud Runtime SDK verwenden. Siehe die Dokumentation für die Stimme, Nachrichten und Konversation (RTC) Anbieter für weitere Informationen.

Umwelt

environment ermöglicht es Ihnen, optional Umgebungsvariablen an Ihre Anwendung zu übergeben. Vonage Cloud Runtime wird die Umgebungsvariablen für Sie injizieren, wenn Sie die Anwendung vcr debug oder wenn Ihre Anwendung in der Vonage Cloud Runtime bereitgestellt wird. Also zum Beispiel, VONAGE_NUMBER von oben wäre verfügbar als:

process.env.VONAGE_NUMBER;

Vonage Cloud Runtime fügt auch einige Umgebungsvariablen standardmäßig für Sie ein. Dazu gehören Dinge wie die Vonage Application ID und der private Schlüssel. Eine vollständige Liste finden Sie in der Verlegeanleitung.

Geheimnisse

Sie können Geheimnisse, die Sie bereits mit der CLI erstellt haben, auf zwei Arten der Instanz zugänglich machen.

Die Verwendung des secrets Liste - wird das Geheimnis direkt als Umgebungsvariable mit eigenem Namen angezeigt:

instance:
    secrets:
        - MY_API_KEY
        - DATABASE_PASSWORD

MY_API_KEY wäre dann verfügbar als process.env.MY_API_KEY.

Die Verwendung des environment Objekt - das Geheimnis wird einem bestimmten Variablennamen zugeordnet:

instance:
    environment:
        - name: API_KEY
          secret: MY_API_KEY

API_KEY wäre dann verfügbar als process.env.API_KEY.

Weitere Informationen zum Erstellen und Verwalten von Geheimnissen finden Sie im Geheimnisse der Vonage Cloud Runtime Anleitung.

Gesundheitscheck Pfad

health-check-path ermöglicht es Ihnen, den von der Plattform verwendeten Pfad zur Überprüfung des Zustands Ihrer Instanz anzupassen. Der Standardpfad ist /_/health. Der Endpunkt muss einen HTTP 200-Status zurückgeben.

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

Weitere Informationen über das Erfordernis einer Gesundheitskontrolle finden Sie in der Verlegeanleitung.

Sicherheit

security ermöglicht es Ihnen, den Zugriff auf die Endpunkte Ihrer Anwendung zu kontrollieren. Standardmäßig sind alle Endpunkte öffentlich zugänglich. Sie können eine Standardzugriffsstufe festlegen und pfadspezifische Überschreibungen hinzufügen.

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

Die verfügbaren Zugriffsebenen sind:

  • public - keine Authentifizierung erforderlich
  • private - von außerhalb des Bahnsteigs nicht zugänglich
  • authenticated - erfordert eine Authentifizierung über auth-method

Die einzige unterstützte auth-method ist vonage_basic.

Pfadmuster unterstützen zwei Wildcards:

  • * - einem einzelnen Pfadsegment entspricht (z. B. /users/*/profile)
  • ** - entspricht mehreren Pfadsegmenten (z. B. /api/**)

Hinweis: Vonage Webhook-Rückrufe müssen auf public damit die Vonage-Plattform sie erreichen kann.

Skalierung

scaling können Sie die minimale und maximale Anzahl von Replikaten festlegen, die die Plattform für Ihre Instanz ausführen soll.

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

Einstellung min-scale zu 1 oder höher sorgt dafür, dass immer mindestens ein Replikat läuft, um Kaltstarts zu vermeiden. Das Standardminimum ist 0 (Skalierung auf Null im Leerlauf).

Domains

domains ermöglicht es Ihnen, einen oder mehrere benutzerdefinierte Domainnamen für Ihre Instanz zu konfigurieren. Bevor Sie eine Domain hinzufügen, erstellen Sie einen DNS CNAME-Eintrag, der auf custom.[region].runtime.vonage.cloud.

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

Debuggen

Das Debug-Objekt gibt der Vonage Cloud Runtime CLI Informationen darüber, wie Sie Ihre Anwendung im Debug-Modus ausführen können. Weitere Informationen zum Debugging finden Sie in der Vonage Cloud Runtime Anleitung zur Fehlersuche.

Name

name ermöglicht es Ihnen, Ihrem Debugger einen Namen zu geben, so dass die generierte Debug-URL statisch ist und nicht zufällig beim Start des Debuggers ermittelt wird.

Applikation ID

So können Sie eine eigene Vonage Application ID für Ihre Instanz angeben.

Umwelt

environment im Debug-Bereich funktioniert genauso wie Instanzumgebunggilt jedoch nur bei der Ausführung vcr debug. Auf diese Weise können Sie lokal verschiedene Umgebungsvariablen verwenden, ohne dass sich dies auf Ihre bereitgestellte Instanz auswirkt.

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

Einstiegspunkt

entrypoint für Debugging funktioniert genauso wie die Instanzeintrittspunkt. Dies gibt Ihnen die Flexibilität, einen separaten Debug-Workflow einzurichten, z. B. mit einem Datei-Überwacher, der die Anwendung neu startet, wenn Änderungen vorgenommen werden:

nodemon --inspect index.js

Wird:

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

Daten aufbewahren

preserve-data ermöglicht es Ihnen, die Daten, die mit Zustand der Instanz zwischen den Durchläufen des Debuggers. Sie ist standardmäßig falsch.