En esta guía, aprenderás a usar la extensión de Cloud Code para VS Code y modernizar tu aplicación heredada para mainframe.
La reescritura de código de Mainframe Modernization permite un enfoque iterativo para la reescritura de código de clientes y socios. Por lo general, se usa después de completar una evaluación con Mainframe Assessment Tool (MAT). Esta extensión integra capacidades de IA generativa para unidades centrales para el análisis, la especificación, la generación y las pruebas de código, lo que proporciona una experiencia de desarrollo interactiva.
Antes de comenzar
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Vertex AI API.
- Instala la extensión de Cloud Code si aún no lo hiciste.
- Instala la Google Cloud CLI si aún no lo hiciste.
Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
Selecciona el comando Preferences: Open User Settings (JSON).
Para habilitar la reescritura de código de modernización de mainframe, agrega el parámetro de configuración
"cloudcode.beta.enableMainframeModernization": true
a tu archivosettings.json
:{ "cloudcode.updateChannel": "Insiders", "cloudcode.beta.enableMainframeModernization": true }
Vuelve a abrir la paleta de comandos (presiona Ctrl/Cmd + Mayúsculas + P) y selecciona el comando Developer: Reload Window.
En una ventana de la terminal, ejecuta el siguiente comando:
gcloud auth application-default login
Sigue las instrucciones en pantalla en la ventana del navegador web que se abrió recientemente.
Sigue las instrucciones para acceder a Trusted Cloud by S3NS.
Selecciona el proyecto que quieres usar.
Ejecuta el comando Developer: Reload Window.
En el editor, selecciona el archivo fuente que deseas usar para que sea el archivo activo.
Para abrir la paleta de comandos, presiona Ctrl/Cmd + Mayúsculas + P.
Busca y selecciona el comando Cloud Code: Generate Specification Summary for Active File.
En la barra de actividad, haz clic en Explorador o presiona Ctrl/Cmd + Mayúsculas + E.
Haz clic con el botón derecho en el archivo fuente que prefieras y selecciona Generate Specification Summary.
Para abrir una vista del CMS intercalada que te permita anotar tu trabajo o programa, haz clic en Agregar Agregar. Después de agregar tu comentario, haz clic en Crear nota para guardarlo.
Cuando se guarde la anotación, usa el comando Generate Specification Summary para generar una especificación para tu trabajo o programa, guiada por tu comentario.
Luego, puedes editar tu anotación para definir mejor la orientación proporcionada o borrarla si ya no quieres que el modelo la tenga en cuenta.
En el editor, selecciona el archivo fuente que deseas usar para que sea el archivo activo.
Para abrir la paleta de comandos, presiona Ctrl/Cmd + Mayúsculas + P.
Busca y selecciona el comando Cloud Code: Generate Modernized Code for Active File.
Selecciona el idioma de destino en el que deseas que se genere el código modernizado.
El código modernizado generado aparece en el editor como un nuevo archivo sin título.
En la barra de actividad, haz clic en Explorador o presiona Ctrl/Cmd + Mayúsculas + E.
Haz clic con el botón derecho en el archivo fuente para el que deseas generar código modernizado y selecciona Generar código modernizado.
Selecciona el idioma de destino en el que deseas que se genere el código modernizado.
El código modernizado generado aparece en el editor como un nuevo archivo sin título.
Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.enableGoogleAnalytics
.Valor de configuración de ejemplo:
false
.Valor predeterminado:
true
(Analytics está habilitado).Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.enableCloudLogging
.Valor de configuración de ejemplo:
true
.Valor predeterminado:
false
(Cloud Logging está inhabilitado).Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.model
Valores de configuración de ejemplo:
"gemini-1.5-flash"
,"gemini-1.5-pro"
,"gemini-2.0-flash"
,"gemini-2.0-flash-lite"
o"gemini-2.5-pro"
.Valor predeterminado:
"(default)"
(pregunta cada vez).Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage
Valores de configuración de ejemplo:
"java"
,"csharp"
,"python"
o"pgsql"
.Valor predeterminado:
null
(pregunta cada vez).Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints
Valor de configuración de ejemplo:
[ "Do not print messages directly to the console; use a logging framework instead.", "when generating java code - use Spring Boot version 3 as the framework" ]
Valor predeterminado:
[]
(una lista vacía; no hay sugerencias de pila tecnológica).Para abrir la terminal, selecciona Ver > Terminal en la barra de menú o presiona el atajo de teclado
⌃
.Ingresa los siguientes comandos en la terminal:
Confirma que la API de Vertex AI esté habilitada en el proyecto Trusted Cloud.
Cambia a otro proyecto Trusted Cloud con la API de Vertex AI habilitada.
- En Linux:
~/.cache/cloud-code/mainframe/bin/codegen
- En Windows:
%LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
- En macOS:
$HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos
- Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
- Selecciona el comando Cloud Code: Install or Update Mainframe Modernization Tools.
- Verifica que el archivo ejecutable ya no falte.
- Vuelve a abrir la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
- Selecciona el comando Developer: Reload Window.
- Abre la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
- Selecciona el comando Output: Show Output Channels.
- Selecciona el canal de salida Cloud Code Mainframe Modernization.
Configura la reescritura de código de Mainframe Modernization
En las siguientes secciones, se describe cómo configurar la reescritura de código de Mainframe Modernization. Primero, deberás habilitar la función de reescritura de código de Mainframe Modernization en tu IDE y, luego, conectarla a Vertex AI.
Habilita la reescritura de código de modernización de la unidad central
Para habilitar la reescritura de código de modernización de mainframe, sigue estos pasos:
Conecta la reescritura de código de Mainframe Modernization a Vertex AI
Para conectar Mainframe Modernization Code Rewrite a Vertex AI, sigue estos pasos:
Después de la configuración, puedes abrir cualquier espacio de trabajo o carpeta que incluya código de mainframe y ejecutar los comandos Generate Specification Summary y Generate Modernized Code en COBOL, JCL, Easytrieve y HLASM.
Genera un resumen de especificaciones
El comando Cloud Code: Generate Specification Summary for Active File te permite crear una especificación en lenguaje neutral para tu código heredado de mainframe. Se admiten COBOL, JCL, Easytrieve y HLASM.
Puedes acceder a un resumen de especificaciones desde la paleta de comandos o desde la vista del Explorador:
Paleta de comandos
Aparece un resumen de la especificación junto al código.
Explorador
Aparece un resumen de la especificación junto al código.
Anota el código heredado de la unidad central
Para guiar el proceso de generación del resumen de especificaciones, puedes agregar comentarios para anotar tu código heredado. Para anotar un trabajo de JCL o un programa de COBOL, busca el botón add Agregar junto a la línea de definición del trabajo o programa:
Trabajo de JCL
Programa en COBOL
Genera código modernizado
El comando Cloud Code: Generate Modernized Code for Active File te permite crear código moderno a partir de tu código heredado de mainframe.
Lenguajes fuente admitidos: COBOL, JCL, Easytrieve y HLASM.
Lenguajes de destino admitidos: Java, C#, Python y SQL.
Puedes acceder a este comando desde la paleta de comandos o desde la vista del Explorador:
Paleta de comandos
Explorador
Modificar la configuración
La reescritura de código de Mainframe Modernization tiene los siguientes parámetros de configuración que puedes establecer en el alcance del espacio de trabajo o en el alcance de la configuración del usuario (global).
Para modificar la configuración a nivel del espacio de trabajo, presiona Ctrl/Cmd + Mayúsculas + P para abrir la paleta de comandos y selecciona el comando Preferences: Open Workspace Settings (JSON).
Para modificar la configuración a nivel de la configuración global del usuario, presiona Ctrl/Cmd+Mayús+P para abrir la paleta de comandos y selecciona el comando Preferences: Open User Settings (JSON).
A continuación, se muestra un ejemplo de un archivo settings.json
que incluye todas las propiedades de configuración de la extensión:
{
"cloudcode.beta.enableMainframeModernization": true,
"cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
"cloudcode.beta.mainframeModernization.enableCloudLogging": false,
"cloudcode.beta.mainframeModernization.model": "gemini-2.5-pro",
"cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage": "csharp",
"cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints": [
"Do not print messages directly to the console; use a logging framework instead."
],
}
Cómo habilitar y inhabilitar Google Analytics
Esta propiedad de configuración habilita o inhabilita la recopilación de estadísticas de uso para la extensión.
Habilita y deshabilita Cloud Logging
Esta propiedad de configuración controla si el registro está habilitado o no.
Modelo
Cuando se establece esta propiedad de configuración, Mainframe Modernization Code Rewrite usa el modelo de Gemini especificado en la configuración.
Idioma de destino
Cuando se establece esta propiedad de configuración, el comando Generate Modernized Code ya no te pide que selecciones el lenguaje de destino cuando generas código, sino que usa el lenguaje establecido en la propiedad.
Sugerencias de la pila tecnológica para la generación de código
Cuando se establece esta propiedad de configuración, el comando Generate Modernized Code pasa la lista especificada de sugerencias de pila tecnológica como instrucciones adicionales al LLM cuando genera código. Esta configuración se puede usar como guía para ajustar la arquitectura objetivo, los frameworks y el estilo de código.
Borra los datos de reescritura de código de la modernización de la unidad central
Para quitar todos los datos que Mainframe Modernization Code Rewrite almacena de forma local en el espacio de trabajo actual, sigue estos pasos:
Linux (Bash o Zsh)
workspace_id=$(printf %s "$PWD$(stat -c '%i' .)" | md5sum | head -c 32)
workspace_storage_dir="$HOME/.config/Code/User/workspaceStorage/$workspace_id"
rm -r "$workspace_storage_dir/googlecloudtools.cloudcode/mainframe/"
Windows (PowerShell)
$workspacePath = (Get-Location).ToString()
$tempFile = (New-TemporaryFile).FullName
($workspacePath.Substring(0, 1).ToLower() + $workspacePath.Substring(1) +
(([decimal](Get-Date (Get-ItemProperty . |
Select-Object -ExpandProperty CreationTimeUtc) -UFormat %s) * 1000) -split '\.')[0]
) | Out-File -FilePath $tempFile -Encoding ascii -NoNewline
$workspaceId = (Get-FileHash -Algorithm MD5 -Path $tempFile).Hash.ToLower()
Remove-Item $tempFile
$workspaceStorageDir = "$env:APPDATA\Code\User\workspaceStorage\$workspaceId"
Remove-Item -Recurse "$workspaceStorageDir\googlecloudtools.cloudcode\mainframe"
Solucionar problemas
En esta sección, se describen los problemas conocidos de la reescritura de código de Mainframe Modernization y se proporcionan pasos para solucionar problemas:
Vertex AI no está disponible en el Trusted Cloud proyecto
Si los comandos Generate Specification Summary o Generate Modernized Code se ejecutan durante mucho tiempo y, luego, fallan, es posible que la API de Vertex AI no esté habilitada o que haya superado su cuota en el proyecto seleccionado. Para confirmar que este es el problema, haz clic en el botón Ir al resultado.
Si el botón Ir a la salida no está disponible, sigue los pasos que se indican en Cómo inspeccionar el canal de salida. En el canal de salida, busca un mensaje de error que contenga "Vertex.GenerateContent failed". Por ejemplo, a continuación, se muestra un mensaje de error que se produce porque la API de Vertex AI no está habilitada en el proyecto Trusted Cloud seleccionado:
"generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent
failed: 403 Forbidden (403)"
Para resolver este problema, realiza una de las siguientes acciones:
Los comandos de reescritura de código de Mainframe Modernization no están disponibles
Si los comandos como Generate Specification Summary o Generate Modernized Code no están disponibles en la paleta de comandos, es posible que no se haya instalado la herramienta de CLI de Mainframe Modernization. Para confirmar que este es el caso, verifica si falta el siguiente archivo ejecutable:
Si es así, intenta resolver el problema realizando las siguientes tareas:
Inspecciona el canal de salida
Para solucionar otros errores que no se mencionan en esta guía, intenta inspeccionar el canal de salida de la extensión. Para abrir el canal de salida, realiza las siguientes tareas: