Desarrollar un servicio de Cloud Run localmente en Cloud Code para Cloud Shell

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

Configurar tu servicio para el desarrollo

Si no tienes definido un archivo .vscode/launch.json, el cuadro de diálogo Ejecutar/Depurar en el emulador de Cloud Run te permite configurar el lanzamiento y, a continuación, guarda los ajustes en .vscode/launch.json. Si tienes un archivo .vscode/launch.json configurado, puedes editarlo directamente.

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

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

    • Solo están disponibles las herramientas de compilación instaladas localmente para Cloud Run Emulator
    • Elige Docker o Buildpacks como compilador y, a continuación, especifica el origen.
    • (Opcional) Para especificar las variables de entorno que se van a transferir a los contenedores en ejecución, despliega Advanced Build Settings (Configuración de compilación avanzada) y, a continuación, haz clic para especificar los pares clave-valor.
      Nombre Descripción Ejemplo
      PORT Puerto en el que debe escuchar el servidor HTTP. 8080
      K_SERVICE Nombre del servicio de Cloud Run que se está ejecutando. hello-world
      K_REVISION Nombre de la revisión de Cloud Run que se está ejecutando. hello-world.1
      K_CONFIGURATION Nombre de la configuración de Cloud Run que ha creado la revisión. hello-world
    • (Opcional) Para especificar conexiones de Cloud SQL, despliega Configuración avanzada de servicios, haz clic en Conexiones y, a continuación, especifica una conexión de Cloud SQL por línea.
    • (Opcional) Marca la opción Hacer que el servicio sea accesible desde otros dispositivos de la red local.
    • (Opcional) Si solo quieres volver a compilar y ejecutar el servicio manualmente, en lugar de automáticamente cuando hagas un cambio, desmarca la opción Volver a compilar y ejecutar automáticamente cuando se hagan cambios.

Ejecutar un servicio de forma local

  1. Cuando hayas definido los ajustes que prefieras, ejecuta el servicio haciendo clic en Ejecutar.

  2. Monitoriza el estado de tu implementación en la ventana de salida.

    Una vez que se haya completado la implementación, puedes ver el servicio en ejecución abriendo la URL que se muestra en la ventana de salida.

  3. 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

  4. Cuando termine la sesión, haz clic con el botón derecho para usar los siguientes comandos:

    • Ver registros: abre los registros de aplicaciones de una implementación específica con el explorador de registros de Cloud Code.
    • Abrir URL: abre la URL del servicio de aplicación de un servicio específico en un navegador web.
  5. Si has desactivado el modo de monitorización en la configuración de inicio y quieres hacer cambios en tu aplicación, así como volver a compilarla y desplegarla, haz clic en la barra de estado de Cloud Code y, a continuación, en Activar modo de monitorización.

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

    Barra de acciones para el despliegue 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 ayudarte a protegerlos. La integración de Secret Manager de Cloud Code te permite almacenar estos secretos de forma segura y obtenerlos mediante programación. Para obtener información detallada sobre cómo crear y gestionar secretos con Cloud Code, consulta la guía de Secret Manager.

Personalizar una configuración de launch.json

El complemento 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 cómo se ejecuta tu servicio, puedes especificar los siguientes campos en el archivo .vscode/launch.json:

  • watch: monitoriza los cambios en el espacio de trabajo y vuelve a ejecutar el servicio. "True" de forma predeterminada

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

    "watch": true,
    
  • build: especifica el compilador (Docker, jibMaven, jibGradle o buildpacks) que se usará para compilar las imágenes.

    En el siguiente ejemplo se muestra un compilador de Docker:

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

    En el siguiente ejemplo se muestra un creador de buildpacks:

    "build": {
      "buildpacks": {
        "path": "src/requirements.txt",
        "builder": "gcr.io/buildpacks/builder:v1"
      }
    },
    
  • image: especifica el nombre de la imagen que quieras 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 va a 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 ajustes 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 de origen:

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