

# 创建适用于 RDS Custom for SQL Server 的 CEV
<a name="custom-cev-sqlserver.create"></a>

您可以使用 AWS 管理控制台或 AWS CLI 创建自定义引擎版本（CEV）。然后，您可以使用 CEV 创建 RDS Custom for SQL Server 实例。

确保 Amazon 机器映像（AMI）与您的 CEV 位于同一 AWS 账户和区域中。否则，创建 CEV 的过程将失败。

有关更多信息，请参阅 [为 Amazon RDS Custom for SQL Server 创建并连接到数据库实例](custom-creating-sqlserver.md)。

**重要**  
对于使用预安装的 SQL Server 创建的 AMI 和使用自带媒体（BYOM）创建的 AMI，创建 CEV 的步骤相同。

## 控制台
<a name="custom-cev-sqlserver.create.console"></a>

**要创建 CEV**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Custom engine versions**（自定义引擎版本）。

   **Custom engine versions**（自定义引擎版本）页面显示了当前存在的所有 CEV。如果您尚未创建任何 CEV，则该表为空。

1. 选择 **Create custom engine version**（创建自定义引擎版本）。

1. 对于 **Engine type**（引擎类型），选择 **Microsoft SQL Server**。

1. 对于**版本**，请选择要使用的数据库引擎版本。

1. 对于 **Major version**（主要版本），选择在 AMI 上安装的主引擎主版本。

1. 在 **Version details**（版本详细信息）中，在 **Custom engine version name**（自定义引擎版本名称）中输入有效的名称。

   名称格式为 `major-engine-version.minor-engine-version.customized_string`。您可以使用 1–50 位字母数字字符、下划线、短划线和句点。例如，您可以输入名称 **15.00.4249.2.my\$1cevtest**。

   或者，选择输入 CEV 的描述。

1. 对于 **Installation Media**（安装介质），浏览或输入您想要从中创建 CEV 的 AMI ID。

1. 在 **Tags** （标签）部分中，添加任何标签以标识 CEV。

1. 选择 **Create custom engine version**（创建自定义引擎版本）。

**Custom engine versions**（自定义引擎版本）页面显示。您的 CEV 显示状态 **pending-validation**（待验证）

## AWS CLI
<a name="custom-cev-sqlserver.create.CEV"></a>

要使用 AWS CLI 创建 CEV，请运行 [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 命令。

以下选项为必填：
+ `--engine`
+ `--engine-version`
+ `--image-id`

您还可以指定以下选项：
+ `--description`
+ `--region`
+ `--tags`

下面的示例创建了一个名为 `15.00.4249.2.my_cevtest` 的 CEV。确保 CEV 的名称以主要引擎版本号开头。

**Example**  
对于 Linux、macOS 或 Unix：  

```
1. aws rds create-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \
3.     --engine-version 15.00.4249.2.my_cevtest \
4.     --image-id ami-0r93cx31t5r596482 \                    
5.     --description "Custom SQL Server EE 15.00.4249.2 cev test"
```
以下部分输出显示了引擎、参数组和其他信息。  

```
 1. "DBEngineVersions": [
 2.     {
 3.     "Engine": "custom-sqlserver-ee",
 4.     "MajorEngineVersion": "15.00",
 5.     "EngineVersion": "15.00.4249.2.my_cevtest",
 6.     "DBEngineDescription": "Microsoft SQL Server Enterprise Edition for RDS Custom for SQL Server",
 7.     "DBEngineVersionArn": "arn:aws:rds:us-east-1:<my-account-id>:cev:custom-sqlserver-ee/15.00.4249.2.my_cevtest/a1234a1-123c-12rd-bre1-1234567890",
 8.     "DBEngineVersionDescription": "Custom SQL Server EE 15.00.4249.2 cev test",
 9.                                                       
10.     "Image": [
11.         "ImageId": "ami-0r93cx31t5r596482",
12.         "Status": "pending-validation"
13.      ],
14.     "CreateTime": "2022-11-20T19:30:01.831000+00:00",
15.     "SupportsLogExportsToCloudwatchLogs": false,
16.     "SupportsReadReplica": false,
17.     "Status": "pending-validation",
18.     "SupportsParallelQuery": false,
19.     "SupportsGlobalDatabases": false,
20.     "TagList": []
21.     }
22. ]
```

如果创建 CEV 的过程失败，则 RDS Custom for SQL Server 会发出 `RDS-EVENT-0198` 以及该消息 `Creation failed for custom engine version major-engine-version.cev_name`。该消息包括有关失败的详细信息，例如，事件打印丢失的文件。要查找有关 CEV 创建问题的故障排除建议，请参阅 [RDS Custom for SQL Server 的 CEV 错误故障排除](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.cev)。

## 从 CEV 创建 RDS Custom for SQL Server 数据库实例
<a name="custom-cev-sqlserver.create.newdbinstance"></a>

成功创建 CEV 后，**CEV status**（CEV 状态）将显示 `pending-validation`。现在，您可以使用 CEV 创建新的 RDS Custom for SQL Server 数据库实例。要从 CEV 创建新的 RDS Custom for SQL Server 数据库实例，请参阅 [创建 RDS Custom for SQL Server 数据库实例](custom-creating-sqlserver.md#custom-creating-sqlserver.create)。

## CEV 的生命周期
<a name="custom-cev-sqlserver.create.lifecycle"></a>

CEV 生命周期包括以下状态。


****  

| CEV 状态 | 描述 | 故障排除建议 | 
| --- | --- | --- | 
| `pending-validation` | CEV 已创建，正在等待关联 AMI 的验证。CEV 将保持为 `pending-validation`，直到从中创建 RDS Custom for SQL Server 数据库实例。 | 如果没有现有任务，则从 CEV 创建一个新的 RDS Custom for SQL Server 数据库实例。创建 RDS Custom for SQL Server 数据库实例时，系统尝试验证 CEV 的关联 AMI。  | 
| `validating` | 基于新的 CEV 创建 RDS Custom for SQL Server 数据库实例的任务正在进行中。创建 RDS Custom for SQL Server 数据库实例时，系统尝试验证 CEV 的关联 AMI。 | 等待现有 RDS Custom for SQL Server 数据库实例的创建任务完成。您可以使用 RDS EVENTS 控制台查看详细的事件消息以进行故障排除。  | 
| `available` | 已成功验证 CEV。成功从 CEV 创建 RDS Custom for SQL Server 数据库实例后，CEV 将进入 `available` 状态。 | CEV 不需要任何额外的验证。它可用于创建其他 RDS Custom for SQL Server 数据库实例或修改现有实例。 | 
| `inactive` | CEV 已修改为非活动状态。 | 您无法使用此 CEV 创建或升级 RDS Custom 数据库实例。此外，您无法使用此 CEV 还原数据库快照以创建新的 RDS Custom 数据库实例。有关如何将状态更改为 `ACTIVE` 的信息，请参阅 [修改适用于 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver-modifying.md)。 | 
| `failed` | 此 CEV 的创建数据库实例步骤在可验证 AMI 之前失败。或者，CEV 使用的底层 AMI 不处于可用状态。 | 排查系统无法创建数据库实例的根本原因。查看详细的错误消息并尝试再次创建新的数据库实例。确保 CEV 使用的底层 AMI 处于可用状态。 | 
| `incompatible-image-configuration` | 验证 AMI 时出错。 | 查看错误的技术详细信息。您无法再次尝试使用此 CEV 验证 AMI。查看以下部分：建议： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.create.html) 使用正确的信息创建新的 CEV。 如果需要，使用支持的 AMI 创建一个新的 EC2 实例，并在其上运行 Sysprep 进程。  | 