使用 Amazon Q 开发者在命令行上运行转换 - Amazon Q 开发者版

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Q 开发者在命令行上运行转换

完成以下步骤,使用 Amazon Q Developer 命令行工具在命令行上转换您的代码。

先决条件

在命令行上开始转换之前,必须满足以下先决条件:

  • 如果您要升级 Java 代码版本,则您的项目满足使用 A mazon Q 升级 Java 版本的先决条件

  • 如果您要在 Java 应用程序中转换嵌入式 SQL,则您的应用程序满足使用 A mazon Q 转换嵌入式 SQL 的先决条件

  • 你的命令行环境中安装了 Python。这就是你要安装命令行工具的方式。支持的最低的 Python 版本为 3.12。

  • 你正在在 macOS 或 Linux 上运行转换。

  • 您的应用程序的大小为 2 GB 或更小。

  • 如果您想让 Amazon Q 升级特定的依赖关系,则您已配置依赖项升级文件

步骤 1:选择身份验证方法并添加权限

您可以对 IAM Identity Center 进行身份验证以在命令行上运行转换。确保您拥有适当的权限。

注意

在命令行上执行的转换不支持客户托管的密钥。

添加权限

与您用于进行身份验证的 Amazon Q 开发者订阅关联的 IAM 身份必须具有在命令行上执行转换的权限。在继续操作之前,请确保您的 IAM 身份具有中定义的权限允许用户在命令行上运行转换

通过 Amazon Q 开发者订阅在 IAM 身份中心进行身份验证

要通过 IAM Identity Center 进行身份验证,您的管理员必须以员工用户身份订阅 Amazon Q Developer Pro,并且您必须提供开始 URL 才能通过订阅进行身份验证。您或您的管理员可以在 Amazon Q 开发者控制台中找到起始网址。有关更多信息,请参阅查找用于 Amazon Q 开发者的起始网址

要添加所需权限,请参阅添加权限

您在中提供了起始网址步骤 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 文件中指定要升级的第一方依赖项,Amazon Q 会在 JDK 升级期间对其进行升级(例如,Java 8 到 17)。在初始 JDK 升级之后,您可以启动单独的转换(17 到 17 或 21 到 21),以升级第三方依赖关系。

Amazon Q 执行最低限度 JDK 升级后,您可以启动单独的转换以升级所有第三方依赖项。或者,您可以在 YAML 文件中指定第三方依赖项及其版本,以便仅在库升级转换期间升级这些依赖关系。

在转换期间,Amazon Q 将提示您提供依赖项升级文件。如果要提供一个,请先确保已正确配置该文件。YAML 文件中必须填写以下字段:

  • name-依赖关系升级文件的名称。

  • description(可选)-依赖关系升级文件以及针对哪个转换的描述。

  • 依赖管理-包含要升级的依赖项和插件的列表。

  • 依赖关系-包含要升级的库的名称和版本。

  • plugins-包含要升级的插件的名称和版本。

  • 标识符-库、插件或其他依赖项的名称。

  • targetVersion-要升级到的依赖项的版本。

  • VersionProperty(可选)-您正在定义的依赖项的版本,使用应用程序pom.xml文件中的properties标签进行设置。

  • OriginType-依赖关系是第一方还是第三方,由 FIRST_PARTY 或 THIRD_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 身份中心进行身份验证,系统会提示您输入 Amazon Q Developer Pro 订阅资料的起始网址。

    然后,按以下格式输入您的订阅 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 将更新该计划。

  4. Amazon Q 开始转换。它将在整个转换过程中输出状态更新。完成后,Amazon Q 会提供输出转换结果、日志和配置文件的路径。

    您的升级代码将提交到 Amazon Q 创建的新分支。Amazon Q 将在一次或多次提交中提交代码,具体取决于您在运行时所做的选择qct configure

  5. 如果您在升级 Java 版本后正在运行另一个转换,请在提交第一次转换后的更改的同一个分支中开始第二次转换。

SQL conversion

在开始之前,请确保您已阅读使用 Amazon Q 开发者在 Java 应用程序中转换嵌入式 SQL以了解此类转换的先决条件。

  1. 要转换嵌入式 SQL,必须先创建一个 YAML 文件,其中包含架构转换中架构元数据文件的路径。AWS DMS

    以下是文件所需的格式:

    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 转换的架构,然后在 YAML 文件中添加一个新字段schema: <schema-name>

  4. Amazon Q 开始转换。它将在整个转换过程中输出状态更新。完成后,Amazon Q 会提供输出转换结果、日志和配置文件的路径。

    您的升级代码将提交到 Amazon Q 创建的新分支。

暂停或取消转换

您可以选择暂停或取消当前的转换作业。您可以将转换作业暂停长达 12 小时,然后才能再次恢复。

暂停或取消代码转换作业
  1. 在 CLI 终端中,按键盘上的 Ctrl+C

  2. 选择是要暂停还是取消转换。

    • 1如果要暂停代码转换作业,请输入。您可以使用以下 QCT 命令在 12 小时内恢复作业,以继续进行代码转换:`qct transform --source_folder=≤/Path/Given/Originally/To/QCT>`

    • 2如果要取消代码转换作业,请输入。