Dans ce guide, vous allez apprendre à utiliser l'extension Cloud Code pour VS Code pour moderniser votre ancienne application mainframe.
La réécriture du code de la modernisation du mainframe permet une approche itérative de la réécriture du code pour les clients et les partenaires. Il est généralement utilisé après avoir effectué une évaluation avec l'outil d'évaluation du mainframe (MAT). Cette extension intègre les fonctionnalités Mainframe GenAI pour l'analyse, la spécification, la génération de code et la génération de tests, offrant une expérience de développement interactive.
Avant de commencer
- 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.
- Installez l'extension Cloud Code si ce n'est pas déjà fait.
- Installez la Google Cloud CLI si ce n'est pas déjà fait.
Configurer la réécriture du code de modernisation du mainframe
Les sections suivantes expliquent comment configurer la réécriture de code de modernisation des mainframes. Vous devez d'abord activer la réécriture de code de modernisation des mainframes dans votre IDE, puis l'associer à Vertex AI.
Activer la réécriture du code de modernisation du mainframe
Pour activer la réécriture de code de modernisation des mainframes, procédez comme suit:
Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.
Sélectionnez la commande Préférences: Ouvrir les paramètres utilisateur (JSON).
Pour activer la réécriture du code de modernisation du mainframe, ajoutez le paramètre
"cloudcode.beta.enableMainframeModernization": true
à votre fichiersettings.json
:{ "cloudcode.updateChannel": "Insiders", "cloudcode.beta.enableMainframeModernization": true }
Ouvrez à nouveau la palette de commandes (appuyez sur Ctrl/Cmd+Maj+P) et sélectionnez la commande Développeur: recharger la fenêtre.
Connecter la réécriture du code de modernisation des mainframes à Vertex AI
Pour connecter la réécriture de code de modernisation des mainframes à Vertex AI, procédez comme suit:
Dans une fenêtre de terminal, exécutez la commande suivante :
gcloud auth application-default login
Suivez les instructions à l'écran dans la nouvelle fenêtre du navigateur Web.
Suivez les instructions pour vous connecter à Google Cloud.
Sélectionnez le projet que vous souhaitez utiliser.
Exécutez la commande Développeur: recharger la fenêtre.
Une fois la configuration terminée, vous pouvez ouvrir n'importe quel espace de travail ou dossier contenant du code mainframe, et exécuter les commandes Generate Specification Summary (Générer un résumé des spécifications) et Generate Modernized Code (Générer du code modernisé) sur COBOL, JCL, Easytrieve et HLASM.
Générer un résumé des spécifications
La commande Cloud Code: générer un récapitulatif des spécifications pour le fichier actif vous permet de créer une spécification de langage neutre pour votre ancien code mainframe. COBOL, JCL, Easytrieve et HLASM sont compatibles.
Vous pouvez accéder à un résumé des spécifications à partir de la palette de commandes ou de la vue "Explorer" :
Palette de commandes
Dans l'éditeur, sélectionnez le fichier source que vous souhaitez utiliser pour en faire le fichier actif.
Pour ouvrir la palette de commandes, appuyez sur Ctrl/Cmd+Maj+P.
Recherchez et sélectionnez la commande Cloud Code: Générer un récapitulatif des spécifications pour le fichier actif.
Un résumé des spécifications s'affiche à côté du code.
Explorer
Dans la barre d'activité, cliquez sur Explorer ou appuyez sur Ctrl/Cmd+Maj+E.
Effectuez un clic droit sur le fichier source de votre choix, puis sélectionnez Générer un récapitulatif des spécifications.
Un résumé des spécifications s'affiche à côté du code.
Annoter l'ancien code du mainframe
Pour guider le processus de génération du résumé de la spécification, vous pouvez annoter votre ancien code en ajoutant des commentaires. Pour annoter un job JCL ou un programme COBOL, recherchez le bouton Ajouter Add à côté de la ligne de définition du job/programme:
Job JCL
Programme COBOL
Pour ouvrir une vue CMS intégrée qui vous permet d'annoter votre offre d'emploi/programme, cliquez sur Ajouter Ajouter. Après avoir ajouté votre commentaire, cliquez sur Créer une note pour l'enregistrer.
Une fois l'annotation enregistrée, utilisez la commande Generate Specification Summary (Générer un récapitulatif des spécifications) pour générer une spécification pour votre tâche/programme, en vous appuyant sur votre commentaire.
Vous pouvez ensuite modifier votre annotation pour affiner les conseils fournis ou la supprimer si vous ne souhaitez plus que le modèle la prenne en compte.
Générer du code modernisé
La commande Cloud Code: générer du code modernisé pour le fichier actif vous permet de créer du code moderne à partir de votre ancien code mainframe.
Langues sources acceptées: COBOL, JCL, Easytrieve et HLASM.
Langues cibles compatibles: Java, C#, Python, SQL.
Vous pouvez accéder à cette commande à partir de la palette de commandes ou de la vue "Explorer" :
Palette de commandes
Dans l'éditeur, sélectionnez le fichier source que vous souhaitez utiliser pour en faire le fichier actif.
Ouvrez la palette de commandes en appuyant sur Ctrl/Cmd+Maj+P.
Recherchez et sélectionnez la commande Cloud Code : Generate Modernized Code for Active File (Cloud Code : générer du code modernisé pour le fichier actif).
Sélectionnez la langue cible dans laquelle vous souhaitez générer le code modernisé.
Le code modernisé généré s'affiche dans l'éditeur sous la forme d'un nouveau fichier sans titre.
Explorer
Dans la barre d'activité, cliquez sur Explorer ou appuyez sur Ctrl/Cmd+Maj+E.
Effectuez un clic droit sur le fichier source pour lequel vous souhaitez générer du code modernisé, puis sélectionnez Generate Modernized Code (Générer du code modernisé).
Sélectionnez la langue cible dans laquelle vous souhaitez générer le code modernisé.
Le code modernisé généré s'affiche dans l'éditeur sous la forme d'un nouveau fichier sans titre.
Modifier les paramètres
La réécriture de code de modernisation des mainframes comporte les paramètres suivants que vous pouvez configurer au niveau de l'espace de travail ou du champ d'application des paramètres utilisateur (global).
Pour modifier les paramètres au niveau de l'espace de travail, appuyez sur Ctrl/Cmd+Maj+P pour ouvrir la palette de commandes, puis sélectionnez la commande Préférences: Ouvrir les paramètres de l'espace de travail (JSON).
Pour modifier les paramètres au niveau des paramètres utilisateur globaux, appuyez sur Ctrl/Cmd+Maj+P pour ouvrir la palette de commandes, puis sélectionnez la commande Préférences: Ouvrir les paramètres utilisateur (JSON).
Voici un exemple de fichier settings.json
qui inclut toutes les propriétés de configuration de l'extension:
{
"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."
],
}
Activer et désactiver Google Analytics
Cette propriété de configuration active ou désactive la collecte des données analytiques d'utilisation pour l'extension.
Nom de la propriété de configuration :
cloudcode.beta.mainframeModernization.enableGoogleAnalytics
.Exemple de valeur de configuration:
false
.Valeur par défaut:
true
(Analytics est activé).
Activer et désactiver Cloud Logging
Cette propriété de configuration contrôle si la journalisation est activée ou non.
Nom de la propriété de configuration :
cloudcode.beta.mainframeModernization.enableCloudLogging
.Exemple de valeur de configuration:
true
.Valeur par défaut:
false
(Cloud Logging est désactivé).
Modèle
Lorsque cette propriété de configuration est définie, la réécriture de code de modernisation de mainframe utilise le modèle Gemini spécifié dans la configuration.
Nom de la propriété de configuration :
cloudcode.beta.mainframeModernization.model
Exemples de valeurs de configuration :
"gemini-1.5-flash"
,"gemini-1.5-pro"
,"gemini-2.0-flash"
,"gemini-2.0-flash-lite"
ou"gemini-2.0-pro"
.Valeur par défaut:
"(default)"
(Demander à chaque fois).
Langue cible
Lorsque cette propriété de configuration est définie, la commande Generate Modernized Code (Générer du code modernisé) ne vous demande plus de sélectionner la langue cible lors de la génération de code et utilise plutôt la langue définie dans la propriété.
Nom de la propriété de configuration :
cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage
Exemples de valeurs de configuration :
"java"
,"csharp"
,"python"
ou"pgsql"
.Valeur par défaut:
null
(Demander à chaque fois).
Conseils sur la pile technologique de génération de code
Lorsque cette propriété de configuration est définie, la commande Generate Modernized Code (Générer du code modernisé) transmet la liste spécifiée d'indices de pile technologique en tant qu'instructions supplémentaires au LLM lors de la génération de code. Cette configuration peut être utilisée comme guide pour ajuster l'architecture cible, les frameworks et le style de code.
Nom de la propriété de configuration :
cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints
Exemple de valeur de configuration:
[ "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" ]
Valeur par défaut:
[]
(liste vide, aucune suggestion de pile technologique)
Supprimer les données de réécriture du code de modernisation du mainframe
Pour supprimer toutes les données stockées localement par la réécriture de code de modernisation du mainframe pour l'espace de travail actuel, procédez comme suit:
Ouvrez le terminal en sélectionnant Vue > Terminal dans la barre de menu ou en appuyant sur le raccourci clavier
⌃
.Saisissez les commandes suivantes dans le terminal:
Linux (Bash ou 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"
Résoudre les problèmes
Cette section décrit les problèmes connus de la réécriture de code de modernisation du mainframe et fournit des étapes de dépannage:
Vertex AI n'est pas disponible dans le projet Google Cloud .
Si les commandes Generate Specification Summary (Générer un récapitulatif des spécifications) ou Generate Modernized Code (Générer du code modernisé) s'exécutent pendant une longue période, puis échouent, l'API Vertex AI n'est peut-être pas activée ou a dépassé son quota dans le projet sélectionné. Pour confirmer que c'est bien le cas, cliquez sur le bouton Accéder à la sortie.
Si le bouton Accéder à la sortie n'est pas disponible, suivez la procédure décrite dans la section Inspecter le canal de sortie. Dans le canal de sortie, recherchez un message d'erreur contenant "Vertex.GenerateContent failed" (Échec de Vertex.GenerateContent). Par exemple, voici un message d'erreur causé par l'absence d'activation de l'API Vertex AI dans le projet Google Cloud sélectionné:
"generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent
failed: 403 Forbidden (403)"
Pour résoudre ce problème, procédez comme suit:
Vérifiez que votre API Vertex AI est activée dans le projet Google Cloud.
Passez à un autre Google Cloud projet pour lequel l'API Vertex AI est activée.
Les commandes de réécriture de code de modernisation du mainframe ne sont pas disponibles
Si des commandes telles que Generate Specification Summary (Générer un récapitulatif des spécifications) ou Generate Modernized Code (Générer du code modernisé) ne sont pas disponibles dans la palette de commandes, cela peut indiquer que l'installation de l'outil de CLI de modernisation du mainframe a échoué. Pour vous en assurer, vérifiez si le fichier exécutable suivant est manquant:
- Sous Linux :
~/.cache/cloud-code/mainframe/bin/codegen
- Sur Windows :
%LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
- Sous macOS:
$HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos
Si c'est le cas, essayez de résoudre le problème en effectuant les tâches suivantes:
- Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.
- Sélectionnez la commande Cloud Code : Install or Update Mainframe Modernization Tools (Cloud Code : installer ou mettre à jour des outils de modernisation des mainframes).
- Vérifiez que le fichier exécutable n'est plus manquant.
- Ouvrez à nouveau la palette de commandes avec Ctrl/Cmd+Maj+P.
- Sélectionnez la commande Developer: Reload Window (Développeur : recharger la fenêtre).
Inspecter le canal de sortie
Pour résoudre d'autres erreurs non répertoriées ailleurs dans ce guide, essayez d'inspecter le canal de sortie de l'extension. Pour ouvrir le canal de sortie, procédez comme suit:
- Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.
- Sélectionnez la commande Output: Show Output Channels (Sortie : afficher les canaux de sortie).
- Sélectionnez le canal de sortie Modernisation de mainframe Cloud Code.