

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

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

# 配置计算和运行时映像
<a name="workflows-working-compute"></a>

在 CodeCatalyst 工作流程中，您可以指定用于运行工作流程操作的 CodeCatalyst 计算和运行时环境映像。

*计算*是指为运行工作流操作而管理和维护的计算引擎（CPU、内存和操作系统）。 CodeCatalyst 

**注意**  
如果计算被定义为工作流的属性，则不能将其定义为该工作流中任何操作的属性。同样，如果计算被定义为任何操作的属性，则无法将其定义为工作流中的属性。

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

**Topics**
+ [计算类型](#compute.types)
+ [计算实例集](#compute.fleets)
+ [按需实例集属性](#compute.on-demand)
+ [预置实例集属性](#compute.provisioned-fleets)
+ [创建预置的实例集](projects-create-compute-resource.md)
+ [编辑预置的实例集](edit-compute-resource.md)
+ [删除预置的实例集](delete-compute-resource.md)
+ [向操作分配实例集或计算](workflows-assign-compute-resource.md)
+ [跨操作共享计算](compute-sharing.md)
+ [指定运行时环境映像](build-images.md)

## 计算类型
<a name="compute.types"></a>

CodeCatalyst 提供以下计算类型：
+ Amazon EC2
+ AWS Lambda

Amazon EC2 在操作运行期间提供更好的灵活性，而 Lambda 则提供优化的操作启动速度。由于启动延迟较短，Lambda 支持更快的工作流操作运行。Lambda 可以运行基本工作流，这些工作流可以构建、测试和部署具有常见运行时系统的无服务器应用程序。这些运行时包括 Node.js、Python、Java、.NET 和 Go。但是，Lambda 不支持某些用例，如果这会对您造成影响，请使用 EC2 计算类型：
+ Lambda 不支持来自指定注册表的运行时环境映像。
+ Lambda 不支持需要 root 权限的工具。对于 `yum` 或 `rpm` 之类的工具，请使用 Amazon EC2 计算类型或其他不需要 root 权限的工具。
+ Lambda 不支持 Docker 构建或运行。不支持以下使用 Docker 镜像的操作：部署 AWS CloudFormation 堆栈、部署到 Amazon ECS、Amazon S3 发布、 AWS CDK 引导、 AWS CDK 部署、 AWS Lambda 调用和 GitHub 操作。Lambda GitHub 计算也不支持在 “ CodeCatalyst GitHub 操作” 操作中运行的基于 Docker 的操作。您可以使用不需要 root 权限的替代方案，例如 Podman。
+ Lambda 不支持写入到 `/tmp` 外部的文件。配置工作流操作时，您可以重新配置工具来安装或写入到 `/tmp`。如果您的构件操作要安装 `npm`，请务必将其配置为安装到 `/tmp`。
+ Lambda 不支持超过 15 分钟的运行时。

## 计算实例集
<a name="compute.fleets"></a>

CodeCatalyst 提供以下计算队列：
+ 按需车队
+ 预置实例集

对于按需实例集，当工作流操作启动时，工作流会预置所需的资源。操作完成后，计算机就会被销毁。您只需为运行操作的分钟数付费。按需实例集是完全托管式的，并包括自动扩展功能以应对需求激增。

CodeCatalyst 还提供预配置的队列，其中包含由 Amazon EC2 提供支持并由维护的机器。 CodeCatalyst使用预置的实例集，您可以配置一组专用计算机来运行工作流操作。这些计算机保持空闲状态，可随时开始立即处理操作。使用预置实例集，您的计算机将始终处于运行状态，并且只要预置完毕，它们就会产生成本。

要创建、更新或删除实例集，您必须拥有**空间管理员**角色或**项目管理员**角色。

## 按需实例集属性
<a name="compute.on-demand"></a>

CodeCatalyst 提供以下按需队列：



- **`Linux.Arm64.Large`**
  - **操作系统:** Amazon Linux 2
  - **架构:** Arm64
  - **v CPUs:** 2
  - **内存（GiB）:** 4
  - **磁盘空间:** 64 GB / **支持的计算类型:** Amazon EC2
  - **磁盘空间:** 10 GB / **支持的计算类型:** Lambda

- **`Linux.Arm64.XLarge`**
  - **操作系统:** Amazon Linux 2
  - **架构:** Arm64
  - **v CPUs:** 4
  - **内存（GiB）:** 8
  - **磁盘空间:** 128 GB / **支持的计算类型:** Amazon EC2
  - **磁盘空间:** 10 GB / **支持的计算类型:** Lambda

- **`Linux.Arm64.2XLarge`**
  - **操作系统:** Amazon Linux 2
  - **架构:** Arm64
  - **v CPUs:** 8
  - **内存（GiB）:** 16
  - **磁盘空间:** 128 GB
  - **支持的计算类型:** Amazon EC2

- **`Linux.x86-64.Large`**
  - **操作系统:** Amazon Linux 2
  - **架构:** x86-64
  - **v CPUs:** 2
  - **内存（GiB）:** 4
  - **磁盘空间:** 64 GB / **支持的计算类型:** Amazon EC2
  - **磁盘空间:** 10 GB / **支持的计算类型:** Lambda

- **`Linux.x86-64.XLarge`**
  - **操作系统:** Amazon Linux 2
  - **架构:** x86-64
  - **v CPUs:** 4
  - **内存（GiB）:** 8
  - **磁盘空间:** 128 GB / **支持的计算类型:** Amazon EC2
  - **磁盘空间:** 10 GB / **支持的计算类型:** Lambda

- **`Linux.x86-64.2XLarge`**
  - **操作系统:** Amazon Linux 2
  - **架构:** x86-64
  - **v CPUs:** 8
  - **内存（GiB）:** 16
  - **磁盘空间:** 128 GB
  - **支持的计算类型:** Amazon EC2



**注意**  
按需实例集的规格将根据您的计费等级而有所不同。有关更多信息，请参阅[定价](https://codecatalyst.aws/explore/pricing)。

如果未选择任何舰队，则 CodeCatalyst 使用`Linux.x86-64.Large`。

## 预置实例集属性
<a name="compute.provisioned-fleets"></a>

预置实例集包含以下属性：

**操作系统**  
操作系统 以下操作系统可用：  
+ Amazon Linux 2
+ Windows Server 2022
**注意**  
只有在构建操作中才支持 Windows 实例集。其他操作目前不支持 Windows。

**架构**  
处理器架构。以下架构可用：  
+ x86\_64
+ Arm64

**计算机类型**  
每个实例的计算机类型。以下计算机类型可用：      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/workflows-working-compute.html)

**Capacity**  
分配给实例集的计算机的初始数量，它定义了可以并行运行的操作数量。

**扩展模式**  
定义操作数量超过实例集容量时的行为。    
**按需预置额外容量**  
按需设置其它计算机，这些计算机根据正在运行的新操作自动纵向扩展，然后在操作完成时缩减到基本容量。这可能会产生额外的成本，因为您需要为每台运行的计算机按分钟付费。  
**等到有额外的实例集容量可用**  
操作运行将放在队列中，直到有计算机可用。这限制了额外成本，因为没有分配额外的计算机。