使用 Amazon Q Developer 在命令列上執行轉換 - Amazon Q Developer

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Q Developer 在命令列上執行轉換

完成以下步驟,使用 Amazon Q Developer 命令列工具轉換命令列上的程式碼。

先決條件

在命令列上開始轉換之前,必須符合下列先決條件:

步驟 1:選擇身分驗證方法並新增許可

您可以驗證 IAM Identity Center 在命令列上執行轉換。確保您擁有適當的許可。

注意

在命令列上執行的轉換不支援客戶受管金鑰。

新增許可

與您用來驗證的 Amazon Q Developer 訂閱相關聯的 IAM 身分必須具有在命令列上執行轉換的許可。在繼續之前,請確定您的 IAM 身分具有 中定義的許可允許使用者在命令列上執行轉換

透過 Amazon Q Developer 訂閱向 IAM Identity Center 驗證

若要向 IAM Identity Center 進行身分驗證,您必須由管理員以人力使用者身分訂閱 Amazon Q Developer Pro,而且必須提供開始 URL 以透過訂閱進行身分驗證。您或您的管理員可以在 Amazon Q Developer 主控台中找到啟動 URL。如需詳細資訊,請參閱 尋找與 Amazon Q Developer 搭配使用的啟動 URL

若要新增必要的許可,請參閱 新增許可

您可以在 中提供啟動 URL步驟 4:設定和驗證

步驟 2:安裝工具

  1. 下載 Amazon Q 命令列工具以進行轉換並解壓縮。

    若要下載舊版的命令列工具,請參閱 版本歷史記錄

  2. 我們建議您在 Python 中設定虛擬環境來安裝工具。若要建立虛擬環境,請在您要安裝工具並執行的目錄中開啟終端機視窗:

    python -m venv qct-cli
  3. 若要啟用虛擬環境,請執行:

    source qct-cli/bin/activate
  4. 若要在命令列上安裝工具,請根據您的機器架構,使用解壓縮工具的路徑執行下列命令:

    Linux_aarch64
    pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.0-py3-none-any.whl
    Linux_x86_64
    pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.0-py3-none-any.whl
    注意

    如果您使用較舊版本的命令列工具進行轉換,請將 1.2.0取代為您下載的版本

  5. 若要驗證工具是否已安裝,請執行:

    which qct

步驟 3:建立相依性升級檔案 (選用)

您可以為 Amazon Q 提供相依性升級檔案、列出專案相依性的 YAML 檔案,以及在轉換期間要升級到哪個版本。透過提供相依性升級檔案,您可以指定 Amazon Q 可能不知道要升級的第三方和第一方相依性。

第一方相依性是指您的組織維護的程式庫、外掛程式和架構,並且只能在本機或組織的私有網路上使用。在本機環境中執行建置時,Amazon Q 可以存取您的第一方相依性。如需詳細資訊,請參閱在本機環境中建置程式碼。第三方相依性是可公開取得或開放原始碼的相依性,這些相依性並非您的組織所獨有。

您可以在 YAML 檔案中指定要升級的第一方相依性,並在 JDK 升級期間 (例如 Java 8 到 17) Amazon Q 升級它們。您可以在初始 JDK 升級之後啟動個別轉換 (17 到 17 或 21 到 21),以升級第三方相依性。

一旦 Amazon Q 執行最低 JDK 升級,您就可以啟動個別轉換來升級所有第三方相依性。或者,您可以在 YAML 檔案中指定第三方相依性及其版本,以在程式庫升級轉換期間僅升級這些相依性。

Amazon Q 會在轉換期間提示您提供相依性升級檔案。如果您想要提供檔案,請先確定您已正確設定檔案。YAML 檔案中需要下列欄位:

  • name - 相依性升級檔案的名稱。

  • description (選用) - 相依性升級檔案的描述,以及轉換的描述。

  • dependencyManagement - 包含要升級的相依性和外掛程式清單。

  • 相依性 - 包含要升級的程式庫名稱和版本。

  • 外掛程式 - 包含要升級之外掛程式的名稱和版本。

  • identifier - 程式庫、外掛程式或其他相依性的名稱。

  • targetVersion - 要升級的相依性版本。

  • versionProperty (選用) - 您正在定義的相依性版本,如您應用程式pom.xml檔案中的 properties標籤所設定。

  • originType - 相依性是第一個還是第三方,由 FIRST_PARTY 或 第三方指定。

以下是相依性升級 YAML 檔案的範例,以及 Amazon Q 剖析所需的組態:

name: dependency-upgrade description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21" dependencyManagement: dependencies: - identifier: "com.example:library1" targetVersion: "2.1.0" versionProperty: "library1.version" # Optional originType: "FIRST_PARTY" - identifier: "com.example:library2" targetVersion: "3.0.0" originType: "THIRD_PARTY" plugins: - identifier: "com.example.plugin" targetVersion: "1.2.0" versionProperty: "plugin.version" # Optional originType: "THIRD_PARTY"

步驟 4:設定和驗證

您必須先向 IAM Identity Center 驗證並提供轉換的組態詳細資訊,才能開始轉換。

  1. 若要開始轉換組態程序,請執行下列命令:

    qct configure
  2. 系統會提示您為每個支援的 Java 版本輸入 JDK 路徑。您只需要指定 Java 應用程式來源版本的 JDK 路徑,而不是目標版本。

  3. 接著,若要向 IAM Identity Center 進行驗證,系統會提示您輸入 Amazon Q Developer Pro 訂閱設定檔的啟動 URL。

    然後,輸入您訂閱 AWS 區域 的 ,格式如下:us-east-1。如需支援的區域的清單,請參閱 支援地區。如需區域代碼清單,請參閱 AWS 一般參考 指南中的區域端點

  4. 您的組態偏好設定會儲存至 configuration.ini 檔案。

步驟 5:執行轉換

選擇您正在執行的轉換類型,以查看所需的組態和命令。

注意

請勿在程式碼轉換期間關閉或關閉本機機器,因為用戶端建置需要穩定的網路連線。

Java upgrade

修改轉換計劃

在 Java 版本升級期間,Amazon Q 會產生轉換計劃,您可以在轉換開始之前檢閱。您可以選擇請求對計劃進行下列變更:

  • 哪些程式庫 Amazon Q 升級,從計劃中包含的清單中

    • 提示範例:

      • 僅升級 <dependency1>、<dependency2> 和 <dependency5>

      • 請勿升級 <dependency1> 或 <dependency2>

  • 將程式庫升級至 的目標版本

    • 提示範例:

      • 將 <dependency> 升級至此版本,而非 <version>

  • Amazon Q 應該執行哪些步驟

    • 提示範例:

      • 僅完成步驟 1-7

      • 請勿執行步驟 5-9

  • 新增要升級的其他相依性 (只有升級至較新的 JDK 版本時的選項)

    • 提示範例:

      • 同時將 <dependency1> 升級至 <version2>

升級 Java 程式碼
  1. 執行下列命令來啟動 Java 升級的轉換。<path-to-folder> 將 取代為您轉換之程式碼的資料夾路徑,並將 <your-target-java-version>取代為 JAVA_17JAVA_21

    qct transform --source_folder <path-to-folder> --target_version <your-target-java-version>

    其他命令選項:

    • 如果您要指定要升級的相依性,請將 --dependency_upgrade_file選項與路徑新增至相依性升級檔案。

    • 如果您不想檢閱或更新轉換計劃,請將 --no-interactive旗標新增至命令。Amazon Q 不會要求您提供有關計劃的意見回饋,而且您也無法請求變更。

  2. 您的 Maven 版本會在轉換開始之前驗證。如果您有至少最低支援的版本,您會看到下列輸出:

    Running command: mvn --version at: path/to/current/directory Your Maven version is supported for transformations.

    如果您沒有支援的 Maven 版本,您必須更新它才能繼續。如需更多資訊,請參閱先決條件

  3. 如果您未新增--no-interactive旗標,Amazon Q 會提示您提供有關轉換計劃的意見回饋。您可以解釋您想要以英文自然語言進行的變更,如果 Amazon Q 可以支援您請求的變更,Amazon Q 將會更新計畫。

  4. Amazon Q 會開始轉換。它會輸出整個轉換期間的狀態更新。完成後,Amazon Q 會提供轉換結果、日誌和組態檔案的輸出路徑。

    您升級的程式碼將遞交至建立的新分支 Amazon Q。Amazon Q 會根據您在執行 時所做的選擇,在一或多個遞交中遞交程式碼qct configure

  5. 如果您在升級 Java 版本後執行另一個轉換,請在您遞交第一次轉換變更的相同分支中啟動第二個轉換。

SQL conversion

開始之前,請確定您已閱讀使用 Amazon Q Developer 轉換 Java 應用程式中的內嵌 SQL以了解此轉換類型的先決條件。

  1. 若要轉換內嵌 SQL,您必須先建立包含結構描述轉換中結構AWS DMS 描述中繼資料檔案路徑的 YAML 檔案。

    以下是 檔案的必要格式:

    schema_conv_metadata_path: <path-to-metadata-zip-file>
  2. 執行下列命令來啟動 SQL 轉換的轉換。<path-to-folder> 使用您要轉換的程式碼取代 資料夾的路徑<path-to-sql-config-file>,並使用您在步驟 1 中建立的 YAML 檔案的路徑取代 。

    qct transform --source_folder <path-to-folder> --sql_conversion_config_file <path-to-sql-config-file>
  3. 如果 Amazon Q 在結構描述中繼資料檔案中找到多個結構描述,則會停止轉換並提供偵測到的結構描述清單。選擇要用於 SQL 轉換的結構描述,然後將新欄位新增至 schema: <schema-name> YAML 檔案。

  4. Amazon Q 會開始轉換。它會輸出整個轉換期間的狀態更新。完成後,Amazon Q 會提供轉換結果、日誌和組態檔案的輸出路徑。

    您升級的程式碼將遞交至建立的新分支 Amazon Q。

暫停或取消轉換

您可以選擇暫停或取消目前的轉換任務。您最多可以暫停轉換任務 12 小時,然後才能再次繼續。

暫停或取消程式碼轉換任務
  1. 在 CLI 終端機中,按下鍵盤上的 Ctrl+C

  2. 選取您要暫停或取消您的分片。

    • 1 如果您想要套用程式碼轉換任務,請輸入 。您可以在 12 小時內繼續任務,以使用下列 QCT 命令繼續程式碼轉換:`qct transform --source_folder=≤/Path/Given/Originally/To/QCT>`

    • 2 如果您想要取消程式碼調校任務,請輸入 。