.NET アプリケーションをモダナイズする

Gemini 生成 AI モデルを搭載した .NET 用コード モダナイズは、コード生成とアプリケーション モダナイズのツールです。アプリケーションをクロス プラットフォームの .NET コードにリファクタリングすることで、Windows に依存する Microsoft .NET Framework アプリケーションをモダナイズできます。

クロスプラットフォームの .NET アプリケーションは、.NET Framework アプリケーションとは異なり、Linux で実行できます。これにより、Windows ライセンスが不要になり、コンテナ化などのクラウドネイティブ機能が有効になります。

このガイドでは、 Trusted Cloudプロジェクトの IAM ロールを付与し、Cloud Storage バケットを作成し、Gemini API キーを作成し、ローカルマシンに code-modernization-for-dotnet 拡張機能をインストールして、.NET Framework アプリケーションをクロスプラットフォームの .NET コードにリファクタリングします。

始める前に

  1. Google アカウントをまだお持ちでない場合は、Google アカウントを作成します。仕事用のメールアドレスを含め、任意のメールアドレスを使用して Google アカウントを作成できます。
  2. 許可リストに登録するには、.NET のコードの最新化: 許可リスト登録リクエスト フォームを送信します。このリクエストが承認されるまで、このページの手順を進めることはできません。
  3. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  4. Verify that billing is enabled for your Trusted Cloud project.

  5. Enable the Cloud Build, Secret Manager, Cloud Storage JSON API, Generative Language API, Cloud Logging, and Compute Engine APIs.

    Enable the APIs

  6. VS Code をインストールします(まだインストールしていない場合)。
  7. Identity and Access Management(IAM)ロールを付与する

    コンソール

    1. Trusted Cloud プロジェクトの IAM ロールを付与するには、[IAM と管理] ページに移動します。

      [IAM と管理] に移動

    2. 次の IAM ロールを追加します。

    • ユーザー権限

      • Storage オブジェクト ユーザー(roles/storage.objectUser
      • Cloud Build 編集者(roles/cloudbuild.builds.editor
    • Cloud Build サービス アカウント

      • Cloud Build サービス アカウント(roles/cloudbuild.builds.builder
      • Secret Manager 閲覧者(roles/secretmanager.viewer
      • ログ書き込み(roles/logging.logWriter
      • Storage オブジェクト ユーザー(roles/storage.objectUser

    gcloud

    必要な IAM ロールを追加するには、次の gcloud コマンドを実行します。

    • Storage オブジェクト ユーザー(roles/storage.objectUser)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:USER_ID" \
      --role="roles/storage.objectUser"
      
    • Cloud Build 編集者(roles/cloudbuild.builds.editor)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:USER_ID" \
      --role="roles/cloudbuild.builds.editor"
      
    • Cloud Build サービス アカウント(roles/cloudbuild.builds.builder)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/cloudbuild.builds.builder"
      
    • Secret Manager アクセサー(roles/secretmanager.secretAccessor)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/secretmanager.secretAccessor"
      
    • ログ書き込み(roles/logging.logWriter)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/logging.logWriter"
      
    • Storage オブジェクト ユーザー(roles/storage.objectUser)ロールを割り当てます。

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/storage.objectUser"
      

    Cloud Storage バケットを作成する

    Cloud Storage バケットを作成するには、次のコマンドを実行します。

    gcloud storage buckets create gs://BUCKET_NAME \
    --project=PROJECT_ID
    

    Gemini API キーを作成して Secret Manager に保存する

    Gemini API キーを作成するには、次のコマンドを実行します。

    gcloud services api-keys create --project=PROJECT_ID \
      --display-name="API Key for .Net Modernization" \
      --api-target="service=generativelanguage.googleapis.com" \
      --key-id="gemini-api-key"
    

    Gemini API キーを Secret Manager に保存するには、次のコマンドを実行します。

    echo -n "(gcloud services api-keys get-key-string gemini-api-key \
    --project=PROJECT_ID \
    --format="value(keyString)")" | \
    
    gcloud secrets create "gemini-api-key" \
    --project=PROJECT_ID \
    --data-file=- \
    --replication-policy="automatic"
    

    拡張機能をインストールして構成する

    .NET 用コードのモダナイゼーション: 許可リスト リクエスト フォームが承認されると、拡張機能が .VSIX ファイルとして届きます。拡張機能をローカルマシンにインストールする手順は次のとおりです。

    1. VS Code で、アクティビティ バーの [Extensions] に移動します。

    2. more_horiz [ビューとその他の操作] をクリックし、[VSIX からインストール] を選択します。

    3. VSIX パッケージ ファイルに移動して選択します。これにより、ローカルマシンの VS Code で Code-modernization-for-dotnet 拡張機能のインストールが開始されます。

    4. インストールが完了したら、VS Code を再起動します。

    5. Code Modernization for .NET extension の設定を次のように更新します。

      • 拡張モード: LocalGit (experimental)
      • プロジェクト ID: PROJECT_ID
      • バケット名: BUCKET_NAME
      • リージョン: us-central1
      • Gemini API Secret: gemini-api-key-secret-name
      • Google アカウント: GOOGLE_ACCOUNT
      • ターゲット フレームワーク: .NET 8.0

      次のように置き換えます。

      • PROJECT_ID: Trusted Cloudプロジェクトの ID(例: 1234567890)。
      • BUCKET_NAME: Cloud Storage バケットの名前。
      • GOOGLE_ACCOUNT: Google アカウント(例: your_full_name@gmail.com)。

    ビルドをトリガーする

    1. Trusted Cloudにログインするには、次のコマンドを実行します。

      gcloud auth login --update-adc
      
    2. モダナイズ ワークフローをトリガーするには、アクティビティ バーで [ソース管理] を選択し、more_horiz [その他の操作] をクリックしてコンテキスト メニューを開き、[Google Cloud: .NET コードをモダナイズする] を選択します。

    プロジェクトを許可リストに追加する

    プロジェクトを許可リストに登録するには、Cloud Build サービス アカウント ID を code-modernization-for-dotnet-discuss@google.com にメールで送信してください。

    サポート、質問、フィードバックについては、同じメールアドレスにお問い合わせください。