通过 Amazon Q 开发者版在命令行中运行转换作业
若要使用 Amazon Q 开发者版命令行工具在命令行中转换代码,请完成以下步骤。
先决条件
在命令行中启动转换作业前,必须满足以下先决条件:
-
如果您要升级 Java 代码版本,您的项目需符合通过 Amazon Q 升级 Java 版本的先决条件。
-
如果您要转换 Java 应用中的嵌入式 SQL,您的应用需符合通过 Amazon Q 转换嵌入式 SQL 的先决条件。
-
您的命令行环境中已安装 Python (用于安装命令行工具),且受支持的 Python 版本不低于 3.12。
-
您正在 macOS 或 Linux 系统上运行转换作业。
-
应用程序大小不超过 2GB。
-
如果您希望 Amazon Q 升级特定依赖项,需已配置依赖项升级文件。
步骤 1:选择身份验证方式并添加权限
可通过 IAM Identity Center 进行身份验证,以在命令行中运行转换作业。请确保您拥有适当的权限。
注意
命令行中执行的转换作业不支持客户托管密钥。
添加权限
用于身份验证的 Amazon Q 开发者版订阅所关联的 IAM 身份,必须具备在命令行中执行转换作业的权限。继续操作前,请确保您的 IAM 身份拥有支持用户在命令行上运行转换中定义的权限。
通过 Amazon Q 开发者版订阅使用 IAM Identity Center 进行身份验证
要通过 IAM Identity Center 验证身份,您需由管理员添加为 Amazon Q 开发者版专业套餐的员工用户并完成订阅,且需提供订阅对应的起始 URL 以完成身份验证。您或您的管理员可在 Amazon Q 开发者版控制台中找到该起始 URL。有关更多信息,请参阅查找用于 Amazon Q 开发者版的起始 URL。
要添加所需权限,请参阅添加权限。
您需在步骤 4:配置和身份验证中提供该起始 URL。
步骤 2:安装工具
-
下载 Amazon Q 命令行转换工具
并解压缩。 要下载工具的旧版本,请参阅版本历史记录。
-
建议在 Python 中创建虚拟环境以安装该工具。要创建虚拟环境,请在您希望安装工具的目录中打开终端窗口,然后运行以下命令:
python -m venv qct-cli -
要激活虚拟环境,请运行以下命令:
source qct-cli/bin/activate -
要在命令行中安装该工具,请根据您的计算机架构运行以下命令,其中包含该工具的解压缩路径:
注意
如果您使用的是旧版本的命令行转换工具,请将
1.2.1替换为您下载的版本号。 -
要验证该工具是否已安装,请运行以下命令:
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(可选):依赖项升级文件的描述,及该文件对应的转换场景。
-
dependencyManagement:包含需升级的依赖项和插件列表。
-
dependencies:包含需升级的库的名称和版本。
-
plugins:包含需升级的插件的名称和版本。
-
identifier:库、插件或其他依赖项的名称。
-
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 完成身份验证,并提供转换所需的配置详情。
-
要启动转换配置流程,请运行以下命令:
qct configure -
系统会提示您为每个受支持的 Java 版本输入 JDK 路径。您只需指定 Java 应用源版本的 JDK 路径,无需提供目标版本的路径。
-
接下来,为通过 IAM Identity Center 验证身份,系统会提示您输入 Amazon Q 开发者版专业套餐订阅配置文件对应的起始 URL。
然后,按以下格式输入您订阅时所在的 AWS 区域:
us-east-1。有关受支持区域的列表,请参阅支持的区域。有关区域代码的列表,请参阅《AWS 一般参考 指南》中的区域端点。 -
您的配置偏好会保存到 configuration.ini 文件中。
步骤 5:运行转换作业
根据您要执行的转换类型,查看所需配置和命令。
注意
代码转换过程中,请勿关闭本地计算机,因为客户端构建需要稳定的网络连接。
暂停或取消转换作业
您可以选择暂停或取消当前的转换作业。转换作业最多可暂停 12 小时,之后可恢复继续执行。
要暂停或取消代码转换作业,请执行以下步骤:
-
在 CLI 终端中,按下键盘上的 Ctrl+C。
-
选择是要暂停还是取消转换。
-
若要暂停代码转换作业,请输入
1。您可在 12 小时内使用以下 QCT 命令恢复作业,继续进行代码转换:`qct transform --source_folder=≤/Path/Given/Originally/To/QCT>`。 -
若要取消代码转换作业,请输入
2。
-