En esta guía, aprenderás a usar la extensión de Cloud Code para VS Code para modernizar tu aplicación heredada de mainframe.
La reescritura de código de la modernización de la unidad central de procesamiento permite un enfoque iterativo para la reescritura de código para clientes y socios. Por lo general, se usa después de completar una evaluación con la Mainframe Assessment Tool (MAT). Esta extensión integra las capacidades de GenAI de Mainframe para el análisis, la especificación, la generación de código y la generación de pruebas, lo que proporciona una experiencia de desarrollo interactiva.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Instala la extensión de Cloud Code si aún no lo hiciste.
- Instala Google Cloud CLI si aún no lo hiciste.
Cómo configurar la modernización de la unidad central de procesamiento mediante la reescritura de código
En las siguientes secciones, se describe cómo configurar la reescritura de código de modernización de Mainframe. Primero, deberás habilitar la reimpresión de código de modernización de Mainframe en tu IDE y, luego, conectarlo a Vertex AI.
Habilita la reescritura de código de la modernización de la unidad central de procesamiento
Para habilitar la reescritura de código de modernización de Mainframe, sigue estos pasos:
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 la modernización de la unidad central de procesamiento, agrega la 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.
Conecta la reescritura de código de la modernización de unidades centrales de procesamiento a Vertex AI
Para conectar la reescritura de código de modernización de Mainframe a Vertex AI, sigue estos pasos:
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 indicaciones para acceder a Google Cloud.
Selecciona el proyecto que deseas usar.
Ejecuta el comando Developer: Reload Window.
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 las especificaciones
El comando Cloud Code: Generate Specification Summary for Active File te permite crear una especificación de lenguaje neutral para tu código de mainframe heredado. Se admiten COBOL, JCL, Easytrieve y HLASM.
Puedes acceder a un resumen de las especificaciones desde la paleta de comandos o desde la vista del explorador:
Paleta de comandos
En el editor, selecciona el archivo de origen 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.
Aparecerá un resumen de la especificación junto al código.
Explorador
En la barra de actividad, haz clic en Explorador o presiona Ctrl/Comando + Mayúsculas + E.
Haz clic con el botón derecho en el archivo de origen que prefieras y selecciona Generate Specification Summary.
Aparecerá un resumen de la especificación junto al código.
Cómo anotar el código heredado de la unidad central de procesamiento
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 agregar Add junto a la línea de definición del trabajo o programa:
Trabajo de JCL
Programa COBOL
Para abrir una vista del CMS intercalada que te permita anotar tu trabajo o programa, haz clic en agregar Agregar. Después de agregar el 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 la anotación para definir mejor la guía proporcionada o borrarla si ya no deseas que el modelo la tenga en cuenta.
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 de origen 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
En el editor, selecciona el archivo de origen 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 archivo nuevo sin título.
Explorador
En la barra de actividad, haz clic en Explorador o presiona Ctrl/Comando + Mayúsculas + E.
Haz clic con el botón derecho en el archivo fuente para el que deseas generar código modernizado y selecciona Generate Modernized Code.
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 archivo nuevo sin título.
Modificar la configuración
La reescritura de código de modernización de Mainframe tiene la siguiente 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 lugar 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.0-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."
],
}
Habilita y habilita Google Analytics
Esta propiedad de configuración habilita o inhabilita la recopilación de estadísticas de uso de la extensión.
Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.enableGoogleAnalytics
.Ejemplo de valor de configuración:
false
.Valor predeterminado:
true
(Analytics está habilitado).
Habilita y habilita Cloud Logging
Esta propiedad de configuración controla si el registro está habilitado o no.
Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.enableCloudLogging
.Ejemplo de valor de configuración:
true
.Valor predeterminado:
false
(Cloud Logging está inhabilitado).
Modelo
Cuando se establece esta propiedad de configuración, la reimpresión de código de modernización de Mainframe usa el modelo de Gemini especificado en la configuración.
Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.model
Ejemplos de valores de configuración:
"gemini-1.5-flash"
,"gemini-1.5-pro"
,"gemini-2.0-flash"
,"gemini-2.0-flash-lite"
o"gemini-2.0-pro"
.Valor predeterminado:
"(default)"
(Ask every time).
Idioma de destino
Cuando se establece esta propiedad de configuración, el comando Generate Modernized Code ya no te solicita que selecciones el idioma de destino cuando generas código y, en su lugar, usa el idioma establecido en la propiedad.
Nombre de la propiedad de configuración:
cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage
Ejemplos de valores de configuración:
"java"
,"csharp"
,"python"
o"pgsql"
.Valor predeterminado:
null
(Ask every time).
Sugerencias de pila tecnológica de 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 de tecnología como instrucciones adicionales al LLM cuando se genera código. Esta configuración se puede usar como guía para ajustar la arquitectura de destino, los frameworks y el diseño del código.
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, sin sugerencias de pila de tecnología)
Borra los datos de la reescritura de código de la modernización de la unidad central de procesamiento
Para quitar todos los datos almacenados de forma local por la reescritura de código de modernización de Mainframe para el espacio de trabajo actual, sigue estos pasos:
Para abrir la terminal, selecciona View > Terminal en la barra de menú o presiona la combinación de teclas
⌃
.Ingresa los siguientes comandos en la terminal:
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 la modernización de Mainframe y se proporcionan pasos para solucionar problemas:
Vertex AI no está disponible en el proyecto Google Cloud
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 excedido 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 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 falló". Por ejemplo, este es un mensaje de error que se produce porque la API de Vertex AI no está habilitada en el proyecto Google Cloud seleccionado:
"generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent
failed: 403 Forbidden (403)"
Para resolver este problema, haz lo siguiente:
Confirma que la API de Vertex AI esté habilitada en el proyecto Google Cloud.
Cambia a otro Google Cloud proyecto con la API de Vertex AI habilitada.
Los comandos de reescritura de código de la modernización de la unidad central de procesamiento 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 la herramienta de CLI de Modernization for Mainframe no se haya instalado correctamente. Para confirmar que este sea el caso, verifica si falta el siguiente archivo ejecutable:
- 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
Si este es el caso, intenta resolver el problema realizando las siguientes tareas:
- 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 esté faltando.
- Vuelve a abrir la paleta de comandos con Ctrl/Cmd + Mayúsculas + P.
- Selecciona el comando Developer: Reload Window.
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:
- 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.