Bereitstellung von

Vonage Cloud Runtime ermöglicht es Ihnen, schnell eine laufende Instanz auf der Plattform zu erstellen, indem Sie sie bereitstellen. Beim Deployment wird Ihr Quellcode mit einer Konfigurationsdatei gebündelt, wodurch ein Paket entsteht. Das Paket wird dann auf die Plattform hochgeladen und wird zu einer laufenden Instanz. Wenn Sie einen Arbeitsbereich auf Code-Hubkönnen Sie das Terminal verwenden, um Ihren Code bereitzustellen, sobald Sie die Änderungen an einem Projekt abgeschlossen haben.

Konfigurationsdatei

Die Konfigurationsdateien geben der Plattform Informationen darüber, wie Ihre Anwendung zu debuggen und einzusetzen ist. Hier 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
  • Der Projektname ist der eindeutige Namensraum für Ihr Projekt, das viele Instanzen enthalten kann.
  • Der Instanzname ist ein eindeutiger Bezeichner für Ihre Instanz.
  • region ist der Ort, an dem die Instanz ausgeführt wird.
  • entrypoint gibt der Vonage Cloud Runtime-Plattform Informationen darüber, wie Sie Ihre Anwendung starten können.
  • build-script ermöglicht es Ihnen, ein Skript anzugeben, das ausgeführt wird, während die Plattform Ihre Anwendung erstellt.

Weitere Informationen über die Möglichkeiten, die Ihnen zur Verfügung stehen, finden Sie in der Konfigurationsdatei-Leitfaden.

Injizierte Umgebungsvariablen

Wenn Sie Ihr Projekt auf Cloud Runtime bereitstellen (oder mit vcr debug), wird die Plattform einige Umgebungsvariablen für Sie zusammen mit dem environment Objekt aus Ihrer Konfigurationsdatei.

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

Adresse und Anschluss der Applikation

Damit Ihre Anwendung korrekt auf Cloud Runtime läuft, müssen Sie sicherstellen, dass Sie Ihre Anwendung auf dem richtigen Port ausführen. Der Port unterscheidet sich bei Verwendung des Cloud-Laufzeit-Debugger und wenn sie eingesetzt werden. Sie können die VCR_PORT und VCR_HOST Umgebungsvariablen, die von Cloud Runtime für Sie injiziert werden, um sicherzustellen, dass Sie immer den richtigen Port und Host verwenden. Hier ist ein Beispiel mit express.js:

const port = process.env.VCR_PORT;
const host = process.env.VCR_HOST ??0.0.0.0
app.listen(port, host, () => {
 console.log(`App listening on port ${port}`);
});

Bei einigen Webservern muss der Host möglicherweise auf 0.0.0.0. Normalerweise müssen Sie dies nicht manuell konfigurieren, da der Code es automatisch verwaltet.

Gesundheitscheck Route

Die Vonage Cloud Runtime Plattform erwartet eine Route, /_/healthdie in Ihrer Anwendung verfügbar sein muss, um den Zustand Ihrer bereitgestellten Anwendung zu überprüfen. Die Route sollte nicht hinter einer Authentifizierung stehen. Ihre Anwendung wird neu gestartet, wenn diese Route nicht den Status 200 zurückgibt. Wenn die Route nicht vorhanden ist, schlägt die Bereitstellung fehl.

Hier ist ein Beispiel für eine Route mit express.js:

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

Sie können dies als Gelegenheit nutzen, um einige eigene Prüfungen durchzuführen und die Plattform Ihre Anwendung automatisch neu starten zu lassen, wenn sie in einen schlechten Zustand gerät, indem sie innerhalb von 30 Sekunden einen Status ungleich 200 zurückgibt.

Wie wird eingesetzt?

Sie können die Bereitstellung mit der Vonage Cloud Runtime CLI durchführen. Zum Bereitstellen führen Sie aus:

vcr deploy

Wenn Sie die Fehlermeldung "credentials not found" erhalten, führen Sie vcr app generate-keys um die Anmeldedaten Ihrer Vonage Anwendung für Vonage Cloud Runtime neu zu generieren.

Dieser Befehl bewirkt Folgendes:

  • Konfiguriert die Rückrufe Ihrer Vonage Applications wie in den Konfigurationsdateien beschrieben. capabilities Objekt.
  • Packt das aktuelle Verzeichnis aus.
  • Lädt es auf die Cloud Runtime Platform hoch.
  • Führt Ihr Build-Skript aus, wenn Sie es in Ihrer Konfigurationsdatei angegeben haben.
  • Wenn alles erfolgreich war, führen Sie den Befehl in Ihrem entrypoint.

Um das Hochladen großer oder unerwünschter Dateien als Teil Ihrer Bereitstellung zu vermeiden, verwenden Sie eine .vcrignore Datei, um sie auszuschließen.

Standardmäßig sucht der Befehl deploy nach einer Konfigurationsdatei namens vcr.yml im aktuellen Verzeichnis. Um eine andere Konfigurationsdatei zu verwenden, können Sie diese ausführen:

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

Wenn Sie zum Beispiel Ihren aktuellen Code mit einer Konfigurationsdatei namens production.yml würden Sie laufen:

vcr deploy --filename production.yml

Bereitstellen mit einer GitHub-Aktion

Wenn Sie das Deployment in Ihren GitHub-Workflow integrieren möchten, können Sie eine GitHub-Action hinzufügen, die für Sie deployt. Die wichtigsten Schritte der Aktion sind das Auschecken Ihres Codes, die Installation der Cloud Runtime CLIund führen Sie dann den Befehl deploy aus. Hier ist ein Beispiel-Workflow, der davon ausgeht, dass Sie eine Skript erstellen um die benutzerdefinierten Aspekte Ihres Projekts zu bearbeiten:

name: Deploy to Cloud Runtime

on:
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    
    env:
      VONAGE_API_KEY: ''
      VCR_REGION: 'euw1'
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v3.0.2
      - name: Install Cloud Runtime CLI
        uses: Vonage/cloud-runtime-cli@main
      - name: Deploy
        run: |
          vcr deploy --api-key ${{env.VONAGE_API_KEY}} --api-secret ${{ secrets.VONAGE_API_SECRET }} --region aws.${{env.VCR_REGION}} --graphql-endpoint https://graphql.${{env.VCR_REGION}}.runtime.vonage.cloud/v1/graphql

Sie müssen Folgendes ersetzen VONAGE_API_KEY und VCR_REGION mit Ihrem API-Schlüssel und der Region, für die Sie die Bereitstellung wünschen. Dieser Workflow wird manuell ausgeführt, aber Sie können ihn so bearbeiten, dass er ausgeführt wird, wenn PRs geschlossen werden usw. Weitere Informationen über GitHub-Aktionen finden Sie auf der Aktionen Dokumentation.

Fehlerbehebung bei der Bereitstellung

Sie erhalten möglicherweise die Fehlermeldung "credentials not found", wenn die Vonage Cloud Runtime Plattform keinen Zugriff auf die Anmeldedaten Ihrer Vonage Anwendung hat. Sie können ein neues privates Schlüsselpaar mithilfe der CLI generieren:

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

Einsatz anzeigen

Um einen genaueren Blick auf Ihr Projekt und Ihre Einsätze zu werfen, können Sie die Vonage Cloud Runtime Dashboard.

Screenshot of the Vonage Cloud Runtime dashboard home page

Wenn Sie auf Ihre bereitgestellte Instanz klicken, erhalten Sie Zugriff auf Protokolle, Ereignisse und den Bereitstellungsverlauf. Auf der Registerkarte "Historie" sehen Sie zum Beispiel die Bereitstellungshistorie für diese Instanz:

Screenshot of an instance's history page

Wenn Sie mehr als eine Instanz für Ihr Projekt bereitstellen, werden sie alle auf dem Dashboard angezeigt:

Screenshot of the cloud runtime dashboard showing multiple instances

Dies ist ein Projekt mit dem Namen vapi, die zwei Konfigurationsdateien hat. Eine Konfigurationsdatei hat eine Instanz namens dev und die andere hat eine Instanz namens prod. Auf diese Weise können Sie mehrere Instanzen haben, die denselben Code ausführen, aber in unterschiedlichen Umgebungen.

Eine Instanz entfernen

Wenn Sie eine bereitgestellte Instanz entfernen möchten, können Sie den Befehl instance remove der Vonage Cloud Runtime CLI verwenden:

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

Um also die dev im obigen Screenshot würden Sie ausführen:

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

Sie können eine Instanz auch mit Hilfe der Instanz-ID entfernen:

vcr instance remove --id <instance-id>

WARNUNG: Dieser Vorgang ist nicht umkehrbar! Angehängte Zustände und Planer werden ebenfalls dauerhaft gelöscht.

IP-Adressen-Zulassungsliste

Wenn Sie den Zugriff auf Ihre Systeme einschränken möchten, sind die IP-Adressen der Vonage Cloud Runtime für jede Region folgende:

EU West - aws.euw1

  • 52.215.68.46
  • 46.137.9.43
  • 54.72.25.154

US West - aws.use1

  • 54.87.47.119
  • 3.224.186.73
  • 35.153.45.51

APAC Südost - aws.apse1

  • 13.251.207.33
  • 52.76.50.31
  • 54.169.132.8