Desarrolla un servicio de Cloud Run de forma local en Cloud Code para VS Code

Antes de implementar un servicio en Cloud Run, puedes desarrollarlo de forma local con un emulador de Cloud Run.

Configura el servicio para el desarrollo

Si no tienes definido un archivo .vscode/launch.json, el diálogo Run/Debug on Cloud Run Emulator te permite configurar el inicio y, luego, guardar la configuración en .vscode/launch.json. Si tienes un archivo .vscode/launch.json configurado, puedes editarlo directamente.

Para ejecutar tu servicio de forma local, especifica tu configuración:

  1. Abre la paleta de comandos (presiona Ctrl/Cmd+Shift+P o haz clic en Ver > Paleta de comandos) y, luego, ejecuta el comando Run on Cloud Run Emulator.
  2. En el cuadro de diálogo Ejecutar/Depurar en un emulador de Cloud Run, establece las especificaciones para tu configuración:

    • Solo las herramientas de compilación instaladas de forma local están disponibles para el emulador de Cloud Run
    • Elige Docker o Buildpacks como tu compilador y, luego, especifica la fuente.
    • (Opcional) Para especificar las variables de entorno que se pasarán a los contenedores en ejecución, expande Configuración avanzada de compilación y, luego, haz clic para especificar pares clave-valor.
      Nombre Descripción Ejemplo
      PORT Es el puerto en el que el servidor HTTP debe escuchar. 8080
      K_SERVICE El nombre del servicio de Cloud Run que se ejecuta. hello-world
      K_REVISION El nombre de la revisión de Cloud Run que se ejecuta. hello-world.1
      K_CONFIGURATION Es el nombre de la configuración de Cloud Run que creó la revisión. hello-world
    • (Opcional) Para especificar conexiones de Cloud SQL, expande Advanced Service Settings, haz clic en Connections y, luego, especifica una conexión de Cloud SQL por línea.
    • (Opcional) Marca la opción Hacer que el servicio sea accesible desde otros dispositivos en la red local.
    • (Opcional) Si solo quieres volver a compilar y ejecutar tu servicio de forma manual, en lugar de automáticamente cuando realices un cambio, desmarca la opción Automatically re-build and re-run on changes.

Ejecuta el servicio de forma local

  1. Después de definir la configuración que prefieras, haz clic en Ejecutar para ejecutar el servicio.

  2. Si se te solicita, autentica tus credenciales para ejecutar y depurar una aplicación de forma local.

  3. Supervisa el estado de tu implementación en la ventana de salida.

    Una vez que se complete la implementación, podrás ver el servicio en ejecución abriendo la URL que se muestra en la ventana de salida.

  4. Para ver los registros detallados, cambia a la vista detallada de Cloud Run en la ventana de salida.

    Panel de salida con hello-world-5 - Detailed seleccionado en el menú desplegable del canal de salida

  5. Una vez que finalice la sesión, haz clic con el botón derecho para usar los siguientes comandos:

    • Ver registros: Abre los registros de la aplicación de una implementación específica con el explorador de registros de Cloud Code.
    • Abrir URL: Abre la URL del servicio de la aplicación de un servicio específico en un navegador web.
  6. Si desactivaste el modo de observación en la configuración de inicio y quieres realizar cambios en tu aplicación, y volver a compilarla y reimplementarla, haz clic en la barra de estado de Cloud Code y, luego, en Activar el modo de observación.

  7. Para detener la implementación, puedes hacer clic en el botón Detener en la barra de acciones de la implementación actual.

    Barra de acciones para la implementación de Cloud Run

Almacenar secretos

Si tu código incluye datos potencialmente sensibles, como claves de API, contraseñas y certificados, almacenarlos como secretos puede ayudar a protegerlos. La integración de Secret Manager de Cloud Code te permite almacenar estos secretos de forma segura y recuperarlos de manera programática. Para obtener información detallada sobre cómo crear y administrar secretos con Cloud Code, consulta la guía de Secret Manager.

Personaliza una configuración launch.json existente

El complemento de Cloud Code actualiza automáticamente el archivo de configuración launch.json cuando eliges una acción de ejecución. Para personalizar aún más la forma en que se ejecuta tu servicio, puedes especificar los siguientes campos en tu archivo .vscode/launch.json:

  • watch: Supervisa los cambios en el espacio de trabajo y vuelve a ejecutar el servicio. El valor predeterminado es verdadero.

    En el siguiente ejemplo, se muestra el reloj configurado en true:

    "watch": true,
    
  • build: Especifica el compilador (Docker, jibMaven, jibGradle o buildpacks) con el que se compilarán tus imágenes.

    En el siguiente ejemplo, se muestra un compilador de Docker:

    "build": {
      "docker": {
        "path": "Dockerfile"
      }
    },
    

    En el siguiente ejemplo, se muestra un compilador de buildpacks:

    "build": {
      "buildpacks": {
        "path": "src/requirements.txt",
        "builder": "gcr.io/buildpacks/builder:v1"
      }
    },
    
  • image: Especifica el nombre de la imagen que se usará.

    En el siguiente ejemplo, se muestra cómo especificar un nombre de imagen:

      "image": "hello-world",
    
  • service: Especifica el servicio de Cloud Run que se usará.

    En el siguiente ejemplo, se muestra cómo especificar un nombre de servicio, un puerto y límites de recursos:

    "service": {
      "name": "hello-world",
      "containerPort": 8080,
      "resources": {
        "limits": {
          "memory": "256Mi"
        }
      }
    },
    
  • debug: Especifica la configuración de depuración, como la asignación de rutas remotas para asignar una ruta local a una ruta en el contenedor remoto.

    En el siguiente ejemplo, se muestra una sección de depuración que indica la ubicación de los archivos fuente:

    "debug": {
      "sourceFileMap": {
        "${workspaceFolder}": "/app"
      }
    }
    

Obtener asistencia

Para enviar comentarios, haz una pregunta en Stack Overflow. Si eres cliente de Google Cloud, puedes enviar tickets a través de los canales de asistencia estándar de Google Cloud.