

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# 将 `CreateImage` 与 CLI 配合使用
<a name="ec2_example_ec2_CreateImage_section"></a>

以下代码示例演示如何使用 `CreateImage`。

------
#### [ CLI ]

**AWS CLI**  
**示例 1：从 Amazon EBS 支持的实例创建 AMI**  
以下 `create-image` 示例从指定的实例创建 AMI。  

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "My server" \
    --description "An AMI for my server"
```
输出：  

```
{
    "ImageId": "ami-abcdef01234567890"
}
```
有关为 AMI 指定块设备映射的更多信息，请参阅《Amazon EC2 用户指南》**中的[为 AMI 指定块设备映射](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#create-ami-bdm)。  
**示例 2：在不重启的情况下从 Amazon EBS 支持的实例创建 AMI**  
以下 `create-image` 示例创建 AMI 并设置 --no-reboot 参数，这样在创建映像之前就不会重启实例。  

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "My server" \
    --no-reboot
```
输出：  

```
{
    "ImageId": "ami-abcdef01234567890"
}
```
有关为 AMI 指定块设备映射的更多信息，请参阅《Amazon EC2 用户指南》**中的[为 AMI 指定块设备映射](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#create-ami-bdm)。  
**示例 3：在创建时标记 AMI 和快照**  
以下 `create-image` 示例创建 AMI，并使用相同的标签 `cost-center=cc123` 标记 AMI 和快照。  

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "My server" \
    --tag-specifications "ResourceType=image,Tags=[{Key=cost-center,Value=cc123}]" "ResourceType=snapshot,Tags=[{Key=cost-center,Value=cc123}]"
```
输出：  

```
{
    "ImageId": "ami-abcdef01234567890"
}
```
有关在创建时标记资源的更多信息，请参阅《Amazon EC2 用户指南》**中的[在创建资源时添加标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-on-create-examples)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateImage](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-image.html)*中的。

------
#### [ PowerShell ]

**适用于 PowerShell V4 的工具**  
**示例 1：此示例从指定的实例创建具有指定名称和描述的 AMI。Amazon EC2 在创建映像前尝试彻底关闭实例，并在完成后重新启动实例。**  

```
New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI"
```
**示例 2：此示例从指定的实例创建具有指定名称和描述的 AMI。Amazon EC2 无需关闭和重新启动实例即可创建映像；因此，无法保证所创建映像上的文件系统完整性。**  

```
New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI" -NoReboot $true
```
**示例 3：此示例创建一个包含三个卷的 AMI。第一个卷基于 Amazon EBS 快照。第二个卷是一个空的 100 GiB Amazon EBS 卷。第三卷是一个实例存储卷。此示例使用的语法需要 PowerShell 版本 3 或更高版本。**  

```
$ebsBlock1 = @{SnapshotId="snap-1a2b3c4d"}
$ebsBlock2 = @{VolumeSize=100}

New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI" -BlockDeviceMapping @( @{DeviceName="/dev/sdf";Ebs=$ebsBlock1}, @{DeviceName="/dev/sdg";Ebs=$ebsBlock2}, @{DeviceName="/dev/sdc";VirtualName="ephemeral0"})
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 4) [CreateImage](https://docs.aws.amazon.com/powershell/v4/reference)中的。

**适用于 PowerShell V5 的工具**  
**示例 1：此示例从指定的实例创建具有指定名称和描述的 AMI。Amazon EC2 在创建映像前尝试彻底关闭实例，并在完成后重新启动实例。**  

```
New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI"
```
**示例 2：此示例从指定的实例创建具有指定名称和描述的 AMI。Amazon EC2 无需关闭和重新启动实例即可创建映像；因此，无法保证所创建映像上的文件系统完整性。**  

```
New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI" -NoReboot $true
```
**示例 3：此示例创建一个包含三个卷的 AMI。第一个卷基于 Amazon EBS 快照。第二个卷是一个空的 100 GiB Amazon EBS 卷。第三卷是一个实例存储卷。此示例使用的语法需要 PowerShell 版本 3 或更高版本。**  

```
$ebsBlock1 = @{SnapshotId="snap-1a2b3c4d"}
$ebsBlock2 = @{VolumeSize=100}

New-EC2Image -InstanceId i-12345678 -Name "my-web-server" -Description "My web server AMI" -BlockDeviceMapping @( @{DeviceName="/dev/sdf";Ebs=$ebsBlock1}, @{DeviceName="/dev/sdg";Ebs=$ebsBlock2}, @{DeviceName="/dev/sdc";VirtualName="ephemeral0"})
```
+  有关 API 的详细信息，请参阅 *AWS Tools for PowerShell Cmdlet 参考 (V* 5) [CreateImage](https://docs.aws.amazon.com/powershell/v5/reference)中的。

------