メインフレーム アプリケーションをモダナイズする

このガイドでは、Cloud Code for VS Code 拡張機能を使用して、レガシー メインフレーム アプリケーションをモダナイズする方法について説明します。

Mainframe Modernization Code Rewrite を使用すると、お客様とパートナー様はコードの書き換えに反復的なアプローチを採用できます。通常は、Mainframe Assessment Tool(MAT)を使用して評価を完了した後に使用します。この拡張機能は、コード分析、仕様、コード生成、テスト生成のための Mainframe GenAI 機能を統合し、インタラクティブな開発エクスペリエンスを提供します。

始める前に

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Cloud Code 拡張機能をインストールします(まだインストールしていない場合)。
  9. Google Cloud CLI をインストールします(まだインストールしていない場合)。
  10. メインフレームのモダナイゼーション コードの書き換えを設定する

    以降のセクションでは、Mainframe Modernization Code Rewrite の設定方法について説明します。まず、IDE で Mainframe Modernization Code Rewrite を有効にしてから、Vertex AI に接続する必要があります。

    メインフレーム モダナイゼーション コードの書き換えを有効にする

    Mainframe Modernization Code Rewrite を有効にする手順は次のとおりです。

    1. Ctrl/Cmd+Shift+P を押してコマンド パレットを開きます。

    2. [設定: ユーザー設定を開く(JSON)] コマンドを選択します。

      メインフレームのモダナイゼーション コードの書き換えを有効にするには、settings.json ファイルに "cloudcode.beta.enableMainframeModernization": true 設定を追加します。

      {
          "cloudcode.updateChannel": "Insiders",
          "cloudcode.beta.enableMainframeModernization": true
      }
      
    3. コマンド パレットを再度開き(Ctrl/Cmd+Shift+P キーを押します)、[デベロッパー: ウィンドウの再読み込み] コマンドを選択します。

    メインフレーム モダナイゼーション コードの書き換えを Vertex AI に接続する

    Mainframe Modernization Code Rewrite を Vertex AI に接続する手順は次のとおりです。

    1. ターミナル ウィンドウで次のコマンドを実行します。

      gcloud auth application-default login
      
    2. 新しく開いたウェブブラウザ ウィンドウに表示される手順に沿って操作します。

    3. 画面の指示に沿って Google Cloudにログインします。

    4. 使用するプロジェクトを選択します。

    5. [デベロッパー: ウィンドウの再読み込み] コマンドを実行します。

    設定が完了すると、メインフレーム コードを含むワークスペースまたはフォルダを開き、COBOL、JCL、Easytrieve、HLASM で Generate Specification Summary コマンドと Generate Modernized Code コマンドを実行できます。

    仕様の概要を生成する

    Cloud Code: Generate Specification Summary for Active File コマンドを使用すると、レガシー メインフレーム コードの中立言語仕様を作成できます。COBOL、JCL、Easytrieve、HLASM がサポートされています。

    仕様の概要には、コマンド パレットまたはエクスプローラ ビューからアクセスできます。

    コマンド パレット

    1. エディタで、使用するソースファイルを選択してアクティブ ファイルにします。

    2. コマンド パレットを開くには、Ctrl/Cmd+Shift+P を押します。

    3. [Cloud Code: Generate Specification Summary for Active File] コマンドを検索して選択します。

    コードの横に仕様の概要が表示されます。

    エクスプローラ

    1. アクティビティ バーで、[エクスプローラ] をクリックするか、Ctrl/Cmd+Shift+E キーを押します。

    2. 目的のソースファイルを右クリックして、[Generate Specification Summary] を選択します。

    コードの横に仕様の概要が表示されます。

    メインフレームのレガシーコードにアノテーションを付ける

    仕様の概要の生成プロセスをガイドするには、コメントを追加してレガシーコードにアノテーションを付けます。JCL ジョブまたは COBOL プログラムにアノテーションを付けるには、ジョブ/プログラム定義行の横にある 追加 追加ボタンを探します。

    JCL ジョブ

    JCL ジョブにアノテーションを付ける

    COBOL プログラム

    COBOL プログラムにアノテーションを付ける

    1. ジョブやプログラムに注釈を付けることができるインライン CMS ビューを開くには、[追加] [追加] をクリックします。コメントを追加したら、[メモを作成] をクリックして保存します。

    2. アノテーションを保存したら、仕様の概要を生成コマンドを使用して、コメントに基づいてジョブ/プログラムの仕様を生成します。

      その後、アノテーションを編集して、提供されたガイダンスを調整したり、モデルで考慮する必要がなくなった場合は削除したりできます。

    最新のコードを生成する

    Cloud Code: Generate Modernized Code for Active File コマンドを使用すると、メインフレームのレガシー コードから最新のコードを作成できます。

    サポートされているソース言語: COBOL、JCL、Easytrieve、HLASM。

    サポートされているターゲット言語: Java、C#、Python、SQL。

    このコマンドには、コマンド パレットまたはエクスプローラ ビューからアクセスできます。

    コマンド パレット

    1. エディタで、使用するソースファイルを選択してアクティブ ファイルにします。

    2. Ctrl/Cmd+Shift+P キーを押してコマンド パレットを開きます。

    3. [Cloud Code: Generate Modernized Code for Active File] コマンドを検索して選択します。

    4. 最新のコードを生成するターゲット言語を選択します。

      生成された最新のコードが、新しい無題のファイルとしてエディタに表示されます。

    エクスプローラ

    1. アクティビティ バーで、[エクスプローラ] をクリックするか、Ctrl/Cmd+Shift+E キーを押します。

    2. 最新のコードを生成するソースファイルを右クリックし、[最新のコードを生成] を選択します。

    3. 最新のコードを生成するターゲット言語を選択します。

      生成された最新のコードが、新しい無題のファイルとしてエディタに表示されます。

    設定の変更

    Mainframe Modernization Code Rewrite には、ワークスペース スコープまたは(グローバル)ユーザー設定スコープで構成できる次の設定があります。

    ワークスペース レベルで設定を変更するには、Ctrl/Cmd + Shift + P キーを押してコマンド パレットを開き、[Preferences: Open Workspace Settings (JSON)] コマンドを選択します。

    グローバル ユーザー設定レベルで設定を変更するには、Ctrl/Cmd+Shift+P を押してコマンド パレットを開き、[Preferences: Open User Settings (JSON)] コマンドを選択します。

    次に、拡張機能の構成プロパティをすべて含む settings.json ファイルの例を示します。

    {
        "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."
        ],
    }
    

    Google アナリティクスを有効または無効にする

    この構成プロパティでは、拡張機能の使用状況分析の収集を有効または無効にします。

    • 構成プロパティ名: cloudcode.beta.mainframeModernization.enableGoogleAnalytics

    • 構成値の例: false

    • デフォルト値: true(分析が有効になっています)。

    Cloud Logging を有効または無効にする

    この構成プロパティは、ロギングを有効にするかどうかを制御します。

    • 構成プロパティ名: cloudcode.beta.mainframeModernization.enableCloudLogging

    • 構成値の例: true

    • デフォルト値: false(Cloud Logging は無効)。

    モデル

    この構成プロパティが設定されている場合、Mainframe Modernization Code Rewrite は構成で指定された Gemini モデルを使用します。

    • 構成プロパティ名: cloudcode.beta.mainframeModernization.model

    • 構成値の例: "gemini-1.5-flash""gemini-1.5-pro""gemini-2.0-flash""gemini-2.0-flash-lite""gemini-2.5-pro"

    • デフォルト値: "(default)"(毎回確認)。

    翻訳する言語

    この構成プロパティを設定すると、コードの最新化を生成コマンドでコードを生成するときに、ターゲット言語を選択するよう求められなくなり、代わりにプロパティで設定された言語が使用されます。

    • 構成プロパティ名: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

    • 構成値の例: "java""csharp""python""pgsql"

    • デフォルト値: null(毎回確認)。

    コード生成の技術スタックのヒント

    この構成プロパティが設定されている場合、コードの最新化を生成コマンドは、コードの生成時に、指定された技術スタックのヒントのリストを追加の指示として LLM に渡します。この構成は、ターゲット アーキテクチャ、フレームワーク、コード スタイルの調整のガイダンスとして使用できます。

    • 構成プロパティ名: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

    • 構成値の例:

      [
        "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"
      ]
      
    • デフォルト値: [](空のリスト。技術スタックのヒントはありません)。

    メインフレーム モダナイゼーション コードの書き換えデータを削除する

    現在のワークスペースの Mainframe Modernization Code Rewrite によってローカルに保存されたすべてのデータを削除するには、次の操作を行います。

    1. メニューバーから [View] > [Terminal] を選択するか、 キーボード ショートカットを押して、ターミナルを開きます。

    2. ターミナルに次のコマンドを入力します。

    Linux(Bash または 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"
    

    トラブルシューティング

    このセクションでは、Mainframe Modernization Code Rewrite の既知の問題とトラブルシューティングの手順について説明します。

    Google Cloud プロジェクトで Vertex AI を使用できない

    仕様の概要を生成コマンドまたは最新のコードを生成コマンドの実行に時間がかかり、失敗した場合は、Vertex AI API が有効になっていないか、選択したプロジェクトで割り当てを超えている可能性があります。これが問題であることを確認するには、[出力に移動] ボタンをクリックします。

    [出力に移動] ボタンが使用できない場合は、出力チャンネルを検査するの手順に沿って操作します。出力チャネルで、「Vertex.GenerateContent failed」を含むエラー メッセージを探します。たとえば、選択した Google Cloud プロジェクトで Vertex AI API が有効になっていない場合、次のようなエラー メッセージが表示されます。

    "generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent failed: 403 Forbidden (403)"

    この問題を解決するには、次のいずれかを行います。

    • Google Cloudプロジェクトで Vertex AI API が有効になっていることを確認します。

    • Vertex AI API が有効になっている別の Google Cloud プロジェクトに切り替えます。

    メインフレームのモダナイゼーション コードの書き換えコマンドが使用できない

    仕様の概要を生成最新のコードを生成などのコマンドがコマンド パレットで使用できない場合は、Mainframe Modernization CLI ツールのインストールが失敗した可能性があります。これを確認するには、次の実行可能ファイルがないかどうかを確認します。

    • Linux の場合: ~/.cache/cloud-code/mainframe/bin/codegen
    • Windows の場合: %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
    • macOS: $HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos

    この場合は、次のタスクを実行して問題を解決してください。

    1. Ctrl/Cmd+Shift+P を押してコマンド パレットを開きます。
    2. [Cloud Code: Install or Update Mainframe Modernization Tools] コマンドを選択します。
    3. 実行可能ファイルが欠落していないことを確認します。
    4. Ctrl/Cmd+Shift+P を押して、コマンド パレットを再度開きます。
    5. [デベロッパー: ウィンドウの再読み込み] コマンドを選択します。

    出力チャネルを検査する

    このガイドの他の場所に記載されていないエラーのトラブルシューティングを行うには、拡張機能の出力チャネルを調べてみてください。出力チャンネルを開くには、次のタスクを行います。

    1. Ctrl/Cmd+Shift+P を押してコマンド パレットを開きます。
    2. [出力: 出力チャンネルを表示] コマンドを選択します。
    3. [Cloud Code Mainframe Modernization] 出力チャンネルを選択します。