AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::EC2::Volume

AWS::EC2::Volume 类型将创建新的 Amazon Elastic Block Store (Amazon EBS) 卷。

重要

在使用 AWS CloudFormation 更新修改 IopsSizeVolumeType 的 Amazon EBS 卷时,操作之间有一个冷却时间。这可能导致您的堆栈长时间报告处于 UPDATE_IN_PROGRESSUPDATE_ROLLBACK_IN_PROGRESS 状态。

您可能会遇到 Amazon EBS 冷却时间的一些常见情况包括:

  • 成功地更新了 Amazon EBS 卷并且更新正确完成。当您在冷却时间窗口内尝试其他更新时,该更新将受到冷却时间的限制。

  • 您成功地更新了 Amazon EBS 卷并且更新正确完成,但您的 update-stack 调用中的另一个更改失败。回滚将受到冷却时间的限制。

有关冷却时间的更多信息,请参阅 Amazon EBS 开发人员指南 中的修改 EBS 卷的注意事项

要控制 AWS CloudFormation 在删除堆栈时处理卷的方式,可为您的卷设置删除策略。您可选择保留 卷、删除 卷或为卷创建快照。有关更多信息,请参阅 DeletionPolicy 属性

注意

如果您设置的删除策略是创建快照,卷上的所有标签都会包含在快照中。

重要

Amazon EBS 不支持减小 Amazon EBS 卷。回滚时,AWS CloudFormation 不会尝试减小 Amazon EBS 卷的大小。

注意

Amazon EBS 不支持修改磁性介质卷。有关更多信息,请参阅修改 EBS 卷时的注意事项

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type":"AWS::EC2::Volume", "Properties" : { "AutoEnableIO" : Boolean, "AvailabilityZone" : String, "Encrypted" : Boolean, "Iops" : Number, "KmsKeyId" : String, "Size" : Integer, "SnapshotId" : String, "Tags" : [ Resource Tag, ... ], "VolumeType" : String } }

YAML

Type: "AWS::EC2::Volume" Properties: AutoEnableIO: Boolean AvailabilityZone: String Encrypted: Boolean Iops: Number KmsKeyId: String Size: Integer SnapshotId: String Tags: - Resource Tag VolumeType: String

属性

AutoEnableIO

指示卷是否自动启用 I/O 操作。默认情况下,当 Amazon EBS 确定卷的数据可能不一致时,它会禁用已挂载的 EC2 实例对此卷执行 I/O 操作。如果此卷的一致性无关紧要,且您希望此卷即使受损也能立即可用,则可将其配置为自动启用 I/O。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的使用 AutoEnableIO 卷属性

Required: No

Type: Boolean

更新要求无需中断

AvailabilityZone

从中创建卷的可用区。

Required: Yes

Type: String

更新要求:不支持更新。

Encrypted

指示 卷是否加密。您只能将加密的 Amazon EBS 卷连接到支持 Amazon EBS 加密的实例类型。通过加密快照创建的卷会自动加密。无法通过未加密的快照创建加密卷,反之亦然。如果您的 AMI 使用加密卷,您只能在支持的实例类型上启动 AMI。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EBS 加密

Required: Conditional。如果指定 KmsKeyId 属性,则必须启用加密。

Type: Boolean

更新要求:不支持更新。

Iops

卷支持的每秒 I/O 操作数 (IOPS)。有关每种卷类型有效大小的更多信息,请参阅 Amazon EC2 API Reference 中的 CreateVolume 操作的 Iops 参数。

Required: Conditional。当卷类型是 io1 时为必需的;不用于标准卷。

Type: Number

更新要求无需中断

KmsKeyId

用于创建加密卷的 AWS Key Management Service 主密钥的 Amazon 资源名称 (ARN),如 arn:aws-cn:kms:us-east-2:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef。如果创建加密卷但不指定此属性,AWS CloudFormation 将使用默认主键。

Required: No

Type: String

更新要求:不支持更新。

Size

卷的大小,以 gibibytes (GiB) 为单位。有关每种卷类型有效大小的更多信息,请参阅 Amazon EC2 API Reference 中的 CreateVolume 操作的 Size 参数。

如果您指定 SnapshotId 属性,请指定大于或等于快照大小的大小。如果未指定大小,EC2 将使用快照大小作为卷大小。

Required: Conditional。如果未为 SnapshotId 属性指定值,则必须指定此属性。

Type: Integer

更新要求无需中断

SnapshotId

从中创建新卷的快照。

Required: No

Type: String

更新要求:不支持更新。

Tags

此卷的任意标签组(键/值对)。

Required: No

Type: AWS CloudFormation 资源标签

更新要求无需中断

VolumeType

卷的类型。如果您将类型设置为 io1,则还必须设置 Iops 属性。对于有效值,请参阅 Amazon EC2 API Reference 中的 CreateVolume 操作的 VolumeType 参数。

Required: No

Type: String

更新要求无需中断

返回值

Ref

如果将 AWS::EC2::Volume 类型指定为 Ref 函数的参数,AWS CloudFormation 将返回卷的物理 ID。例如:vol-5cb85026

有关使用 Ref 功能的更多信息,请参阅参考

示例

例 带有将在删除时拍摄快照的 DeletionPolicy 的加密 Amazon EBS 卷

"NewVolume" : { "Type" : "AWS::EC2::Volume", "Properties" : { "Size" : "100", "Encrypted" : "true", "AvailabilityZone" : { "Fn::GetAtt" : [ "Ec2Instance", "AvailabilityZone" ] }, "Tags" : [ { "Key" : "MyTag", "Value" : "TagValue" } ] }, "DeletionPolicy" : "Snapshot" }

例 带 100 个预置 IOPS 的 Amazon EBS 卷

"NewVolume" : { "Type" : "AWS::EC2::Volume", "Properties" : { "Size" : "100", "VolumeType" : "io1", "Iops" : "100", "AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ] } } }

更多信息