Despliegue de

Vonage Cloud Runtime te permite crear rápidamente una instancia en ejecución en la plataforma mediante la implementación. La implementación combina tu código fuente con un archivo de configuración, lo que crea un paquete. A continuación, el paquete se carga en la plataforma y se convierte en una instancia en ejecución. Cuando se utiliza un espacio de trabajo en Código Hubpuede utilizar el terminal para desplegar su código una vez que haya terminado de realizar cambios en un proyecto.

Archivo de configuración

Los archivos de configuración proporcionan información a la plataforma sobre cómo depurar y desplegar tu aplicación. A continuación se muestra un archivo de configuración de ejemplo:

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
  • El nombre del proyecto es el espacio de nombres único para su proyecto, que puede contener muchas instancias.
  • El nombre de instancia es un identificador único para su instancia.
  • region es donde se ejecutará la instancia.
  • entrypoint brinda a la plataforma Vonage Cloud Runtime información sobre cómo iniciar tu aplicación.
  • build-script le permite especificar un script que se ejecutará mientras la plataforma construye su aplicación.

Puede obtener más información sobre las opciones disponibles en el guía del archivo de configuración.

Variables de entorno inyectadas

Cuando despliegue su proyecto en Cloud Runtime (o utilice vcr debug), la plataforma inyectará algunas variables de entorno junto con el archivo environment de su archivo de configuración.

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

Dirección y puerto de la aplicación

Para que su aplicación funcione correctamente en Cloud Runtime, debe asegurarse de que está ejecutando su aplicación en el puerto correcto. El puerto difiere cuando se utiliza el Depurador en tiempo de ejecución en la nube y cuando se despliega. Puede utilizar el VCR_PORT y VCR_HOST que Cloud Runtime inyecta para usted, para asegurarse de que siempre está utilizando el puerto y el host correctos. He aquí un ejemplo utilizando 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}`);
});

Algunos servidores web pueden requerir que el host esté configurado para 0.0.0.0. Normalmente, no es necesario configurarlo manualmente, ya que el código lo gestiona automáticamente.

Ruta del chequeo médico

La plataforma Vonage Cloud Runtime espera una ruta, /_/healthque debe estar disponible en su aplicación y que se utiliza para comprobar la salud de su aplicación desplegada. La ruta no debe estar detrás de ninguna autenticación. Su aplicación se reiniciará si esta ruta no devuelve un estado 200. Si la ruta no está disponible, el despliegue fallará.

He aquí un ejemplo de la ruta utilizando express.js:

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

Puede utilizar esto como una oportunidad para realizar algunas comprobaciones por su cuenta, y hacer que la plataforma reinicie su aplicación por usted automáticamente si entra en un mal estado devolviendo un estado no 200 en 30 segundos.

Cómo desplegar

Puedes implementar usando la CLI de Vonage Cloud Runtime. Para implementar, ejecuta:

vcr deploy

Si aparece el error "credenciales no encontradas", ejecute vcr app generate-keys para regenerar las credenciales de tu aplicación de Vonage para Vonage Cloud Runtime.

Este comando hace lo siguiente:

  • Configura las retrollamadas de tu aplicación de Vonage como se describe en el archivo de configuración de capabilities objeto.
  • Empaqueta el directorio actual.
  • Lo carga en la plataforma Cloud Runtime.
  • Ejecuta el script de compilación si se incluye en el archivo de configuración.
  • Si todo va bien, ejecuta el comando en tu entrypoint.

Para evitar cargar archivos grandes o no deseados como parte de su despliegue, utilice un archivo .vcrignore para excluirlos.

Por defecto, el comando deploy buscará un archivo de configuración llamado vcr.yml en el directorio actual. Para utilizar un archivo de configuración diferente puede ejecutar:

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

Por ejemplo, para desplegar su código actual con un archivo de configuración llamado production.yml correrías:

vcr deploy --filename production.yml

Despliegue con una acción de GitHub

Si quieres integrar el despliegue en tu flujo de trabajo de GitHub puedes añadir una Acción de GitHub para que despliegue por ti. Los pasos principales de la acción son obtener el código, instalar el archivo CLI de Cloud Runtimey ejecute el comando deploy. A continuación se muestra un flujo de trabajo de ejemplo que asume que se está utilizando un comando script de creación para gestionar los aspectos personalizados de su proyecto:

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

Deberá sustituir VONAGE_API_KEY y VCR_REGION con su API Key y la región en la que desea desplegar. Este flujo de trabajo se ejecuta manualmente, pero puedes editarlo para que se ejecute cuando se cierren PR, etc. Puedes obtener más información sobre las Acciones de GitHub en la página Acciones Documentación.

Solución de problemas de implantación

Es posible que obtengas un error de "credenciales no encontradas" si la plataforma de Vonage Cloud Runtime no tiene acceso a las credenciales de tu aplicación de Vonage. Puedes generar un nuevo par de claves privadas usando la CLI:

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

Ver su implantación

Para echar un vistazo más profundo a su proyecto y despliegues puede utilizar la herramienta Panel de Vonage Cloud Runtime.

Screenshot of the Vonage Cloud Runtime dashboard home page

Si hace clic en la instancia desplegada, podrá acceder a los registros, eventos e historial de despliegue. Por ejemplo, la pestaña de historial le mostrará el historial de despliegue de esta instancia:

Screenshot of an instance's history page

Si despliega más de una instancia para su proyecto, todas aparecerán en el panel de control:

Screenshot of the cloud runtime dashboard showing multiple instances

Se trata de un proyecto denominado vapique tiene dos archivos de configuración. Un archivo de configuración tiene una instancia llamada dev y el otro tiene una instancia llamada prod. Esto le permite tener múltiples instancias ejecutando el mismo código pero con diferentes entornos.

Eliminar una instancia

Si deseas eliminar una instancia implementada, puedes utilizar el comando de eliminación de instancias de la CLI de Vonage Cloud Runtime:

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

Por lo tanto, para eliminar el dev ejemplo en la captura de pantalla anterior se ejecutaría:

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

También puede eliminar una instancia utilizando el ID de instancia:

vcr instance remove --id <instance-id>

ADVERTENCIA: ¡Esta acción es irreversible! El estado y los programadores adjuntos también se eliminarán de forma permanente.

Lista de direcciones IP permitidas

Si deseas restringir el acceso a tus sistemas, las direcciones IP de Vonage Cloud Runtime para cada región son:

UE Oeste - 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 Sudeste - aws.apse1

  • 13.251.207.33
  • 52.76.50.31
  • 54.169.132.8