指定运行时环境映像 - Amazon CodeCatalyst

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

指定运行时环境映像

运行时环境镜像是一个 Docker 容器,在其中 CodeCatalyst运行工作流程操作。Docker 容器在您选择的计算平台上运行,包括操作系统和工作流程操作可能需要的额外工具,例如 AWS CLI、Node.js 和.tar。

默认情况下,工作流程操作将在由提供和维护的其中一个活动图像上运行 CodeCatalyst。只有生成和测试操作支持自定义镜像。有关更多信息,请参阅 为操作分配自定义运行时环境 Docker 镜像

活跃图片

活动镜像是运行时环境镜像,完全支持 CodeCatalyst 并包含预安装的工具。目前有两组活跃图片:一组于2024年3月发布,另一组于2022年11月发布。

一个动作是使用 2024 年 3 月还是 2022 年 11 月的图片取决于动作:

  • 在 2024 年 3 月 26 日当天或之后添加到工作流程中的构建和测试操作将在其YAML定义中包含明确指定 2024 年 3 月图像的Container部分。您可以选择删除该Container部分以恢复到 2022 年 11 月的图片

  • 在 2024 年 3 月 26 日之前添加到工作流程中的构建和测试操作的YAML定义中将不包含任何Container部分,因此将使用 2022 年 11 月的图像。您可以保留 2022 年 11 月的映像,也可以对其进行升级。要升级映像,请在可视化编辑器中打开操作,选择 “配置” 选项卡,然后从 “运行时环境 docker 镜像” 下拉列表中选择 2024 年 3 月的镜像。此选项将在动作YAML定义中添加一个Container部分,该部分将填充相应的 2024 年 3 月图像。

  • 所有其他操作将使用 2022 年 11 月的图像或 202 4 年 3 月的图像。有关更多信息,请参阅操作的文档。

2024 年 3 月的图片

2024 年 3 月的图片是提供的最新图片。 CodeCatalyst每种计算类型/舰队组合都有一个 2024 年 3 月的映像。

下表显示了 2024 年 3 月的每张映像上安装的工具。

2024 年 3 月的图片工具
工具 CodeCatalyst EC2适用于 Linux 的亚马逊 x86_64-CodeCatalystLinux_x86_64:2024_03 CodeCatalyst 适用于 Linux 的 Lambda x86_64-CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst EC2适用于 Linux 的亚马逊 Arm64-CodeCatalystLinux_Arm64:2024_03 CodeCatalyst 适用于 Linux 的 Lambda Arm64-CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17
AWS 副驾驶 CLI 1.32.1 1.32.1 1.32.1 1.32.1
Docker 24.0.9 不适用 24.0.9 不适用
Docker Compose 2.23.3 不适用 2.23.3 不适用
Git 2.43.0 2.43.0 2.43.0 2.43.0
Go 1.21.5 1.21.5 1.21.5 1.21.5
Gradle 8.5 8.5 8.5 8.5
Java Corretto17 Corretto17 Corretto17 Corretto17
Maven 3.9.6 3.9.6 3.9.6 3.9.6
Node.js 18.19.0 18.19.0 18.19.0 18.19.0
npm 10.2.3 10.2.3 10.2.3 10.2.3
Python 3.9.18 3.9.18 3.9.18 3.9.18
Python3 3.11.6 3.11.6 3.11.6 3.11.6
pip 22.3.1 22.3.1 22.3.1 22.3.1
.NET 8.0.100 8.0.100 8.0.100 8.0.100

2022 年 11 月的图片

每种计算类型/舰队组合都有一个 2022 年 11 月的映像。如果您配置了预配置的队列,则还有 2022 年 11 月的 Windows 映像可用于构建操作。

下表显示了 2022 年 11 月的每张映像上安装的工具。

2022 年 11 月图片工具
工具 CodeCatalyst EC2适用于 Linux 的亚马逊 x86_64-CodeCatalystLinux_x86_64:2022_11 CodeCatalyst 适用于 Linux 的 Lambda x86_64-CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst EC2适用于 Linux 的亚马逊 Arm64-CodeCatalystLinux_Arm64:2022_11 CodeCatalyst 适用于 Linux 的 Lambda Arm64-CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst EC2适用于 Windows 的亚马逊 x86_64-CodeCatalystWindows_x86_64:2022_11
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17 2.13.19
AWS 副驾驶 CLI 0.6.0 0.6.0 不适用 不适用 1.30.1
Docker 23.01 不适用 23.0.1 不适用 不适用
Docker Compose 2.16.0 不适用 2.16.0 不适用 不适用
Git 2.40.0 2.40.0 2.39.2 2.39.2 2.42.0
Go 1.20.2 1.20.2 1.20.1 1.20.1 1.19
Gradle 8.0.2 8.0.2 8.0.1 8.0.1 8.3
Java Corretto17 Corretto17 Corretto17 Corretto17 Corretto17
Maven 3.9.4 3.9.4 3.9.0 3.9.0 3.9.4
Node.js 16.20.2 16.20.2 16.19.1 16.14.2 16.20.0
npm 8.19.4 8.19.4 8.19.3 8.5.0 8.19.4
Python 3.9.15 2.7.18 3.11.2 2.7.18 3.9.13
Python3 不适用 3.9.15 不适用 3.11.2 不适用
pip 22.2 22.2 23.0.1 23.0.1 22.0.4
.NET 6.0.407 6.0.407 6.0.406 6.0.406 6.0.414

如果现用图像不包含我需要的工具怎么办?

如果提供的活动图像均不 CodeCatalyst 包含您需要的工具,则有以下几种选择:

  • 您可以提供包含必要工具的自定义运行时环境 Docker 镜像。有关更多信息,请参阅 为操作分配自定义运行时环境 Docker 镜像

    注意

    如果要提供自定义运行时环境 Docker 镜像,请确保您的自定义镜像中安装了 Git。

  • 您可以让工作流程的生成或测试操作安装所需的工具。

    例如,您可以在生成或测试操作的YAML代码Steps部分中包含以下说明:

    Configuration: Steps: - Run: ./setup-script

    这些区域有:setup-script 然后,指令将运行以下脚本来安装 Node 包管理器 (npm):

    #!/usr/bin/env bash echo "Setting up environment" touch ~/.bashrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install v16.1.0 source ~/.bashrc

    有关生成操作的更多信息YAML,请参阅生成和测试操作 YAML

为操作分配自定义运行时环境 Docker 镜像

如果您不想使用提供的 A ctive 镜像 CodeCatalyst,则可以提供自定义运行时环境 Docker 镜像。如果要提供自定义镜像,请确保其中安装了 Git。镜像可以存放在 Docker Hub、Amazon 弹性容器注册表或任何公共存储库中。

要了解如何创建自定义 Docker 镜像,请参阅 Docker 文档中的容器化应用程序

按照以下说明将您的自定义运行时环境 Docker 镜像分配给操作。指定映像后,在操作开始时将其 CodeCatalyst 部署到您的计算平台。

注意

以下操作不支持自定义运行时环境 Docker 镜像:部署 AWS CloudFormation 堆栈部署到ECSGitHub 操作。自定义运行时环境 Docker 镜像也不支持 Lambda 计算类型。

Visual
使用可视化编辑器分配自定义运行时环境 Docker 镜像
  1. 打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/

  2. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  3. 选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。

  4. 选择编辑

  5. 选择 “视觉”。

  6. 在工作流程图中,选择将使用您的自定义运行时环境 Docker 映像的操作。

  7. 选择配置选项卡。

  8. 在底部附近,填写以下字段。

    运行时环境 Docker 镜像-可选

    指定存储图像的注册表。有效值包括:

    • CODECATALYST(YAML编辑)

      图像存储在 CodeCatalyst 注册表中。

    • Docker Hub(可视化编辑器)或DockerHub(YAML编辑器)

      镜像存储在 Docker Hub 镜像注册表中。

    • 其他注册表(可视化编辑器)或Other(YAML编辑器)

      图像存储在自定义图像注册表中。可以使用任何公开可用的注册表。

    • Amazon 弹性容器注册表(可视化编辑器)或ECR(YAML编辑器)

      该图像存储在 Amazon 弹性容器注册表镜像存储库中。要使用亚马逊ECR存储库中的图片,此操作需要访问亚马逊ECR。要启用此访问权限,您必须创建一个包含以下权限和自定义信任策略的IAM角色。(如果需要,可以修改现有角色以包含权限和策略。)

      该IAM角色的角色策略中必须包含以下权限:

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      该IAM角色必须包含以下自定义信任策略:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

      有关创建IAM角色的更多信息,请参阅《IAM用户指南》中的使用自定义信任策略(控制台)创建角色。

      创建角色后,必须通过环境将其分配给操作。有关更多信息,请参阅 将环境与操作关联

    ECR图片URLDocker Hub 镜像或镜像 URL

    指定下列项之一:

    • 如果您使用的是CODECATALYST注册表,请将映像设置为以下活动映像之一:

      • CodeCatalystLinux_x86_64:2024_03

      • CodeCatalystLinux_x86_64:2022_11

      • CodeCatalystLinux_Arm64:2024_03

      • CodeCatalystLinux_Arm64:2022_11

      • CodeCatalystLinuxLambda_x86_64:2024_03

      • CodeCatalystLinuxLambda_x86_64:2022_11

      • CodeCatalystLinuxLambda_Arm64:2024_03

      • CodeCatalystLinuxLambda_Arm64:2022_11

      • CodeCatalystWindows_x86_64:2022_11

    • 如果您使用的是 Docker Hub 注册表,请将镜像设置为 Docker Hub 镜像名称和可选标签。

      例如:postgres:latest

    • 如果您使用的是亚马逊ECR注册表,请将图像设置为亚马逊ECR注册表URI。

      例如:111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    • 如果您使用的是自定义注册表,请将映像设置为自定义注册表所期望的值。

  9. (可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。

  10. 选择 “提交”,输入提交消息,然后再次选择 “提交”。

YAML
使用编辑器分配自定义运行时环境 Docker 镜像 YAML
  1. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  2. 选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。

  3. 选择编辑

  4. 选择YAML

  5. 找到要为其分配运行时环境 Docker 镜像的操作。

  6. 在操作中,添加一个Container章节以及底层RegistryImage属性。有关更多信息,请参阅中针对您的操作的ContainerRegistryImage属性的描述。操作

  7. (可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。

  8. 选择 “提交”,输入提交消息,然后再次选择 “提交”。

示例

以下示例说明如何将自定义运行时环境 Docker 镜像分配给工作流程定义文件中的操作。

示例:使用自定义运行时环境 Docker 镜像在亚马逊上添加对 Node.js 18 的支持 ECR

以下示例展示了如何使用自定义运行时环境 Docker 镜像在亚马逊ECR上添加对 Node.js 18 的支持。

Configuration: Container: Registry: ECR Image: public.ecr.aws/amazonlinux/amazonlinux:2023

示例:使用自定义运行时环境 Docker 镜像通过 Docker Hub 添加对 Node.js 18 的支持

以下示例展示了如何使用自定义运行时环境 Docker 镜像通过 Docker Hub 添加对 Node.js 18 的支持。

Configuration: Container: Registry: DockerHub Image: node:18.18.2