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

AWS::OpsWorks::Stack

创建 AWS OpsWorks 堆栈。AWS OpsWorks 堆栈表示要共同管理的一组实例,通常由于它们具有共同用途(例如为 PHP 应用程序提供服务)。

语法

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

JSON

{ "Type" : "AWS::OpsWorks::Stack", "Properties" : { "AgentVersion" : String, "Attributes" : { String:String, ... }, "ChefConfiguration" : { ChefConfiguration }, "CloneAppIds" : [ String, ... ], "ClonePermissions" : Boolean, "ConfigurationManager" : { StackConfigurationManager }, "CustomCookbooksSource" : { Source }, "CustomJson" : JSON, "DefaultAvailabilityZone" : String, "DefaultInstanceProfileArn" : String, "DefaultOs" : String, "DefaultRootDeviceType" : String, "DefaultSshKeyName" : String, "DefaultSubnetId" : String, "EcsClusterArn" : String, "ElasticIps" : [ ElasticIp, ... ], "HostnameTheme" : String, "Name" : String, "RdsDbInstances" : [ RdsDbInstance, ... ], "ServiceRoleArn" : String, "SourceStackId" : String, "UseCustomCookbooks" : Boolean, "UseOpsworksSecurityGroups" : Boolean, "VpcId" : String } }

YAML

Type: "AWS::OpsWorks::Stack" Properties: AgentVersion: String Attributes: String:String ChefConfiguration: ChefConfiguration CloneAppIds: - 字符串 ClonePermissions: Boolean ConfigurationManager: StackConfigurationManager CustomCookbooksSource: Source CustomJson: JSON DefaultAvailabilityZone: String DefaultInstanceProfileArn: String DefaultOs: String DefaultRootDeviceType: String DefaultSshKeyName: String DefaultSubnetId: String EcsClusterArn: String ElasticIps: - ElasticIp HostnameTheme: String Name: String RdsDbInstances: - RdsDbInstance ServiceRoleArn: String SourceStackId: String UseCustomCookbooks: Boolean UseOpsworksSecurityGroups: Boolean VpcId: String

属性

AgentVersion

要使用的 AWS OpsWorks 代理版本。代理与服务通信并处理任务(比如,启动 Chef 运行以响应生命周期事件)。有关有效值的信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack 操作的 AgentVersion 参数。

Required: No

Type: String

更新要求无需中断

Attributes

要添加到堆栈属性包的一个或多个用户定义的键/值对。

Required: No

类型:键/值对的列表

更新要求无需中断

ChefConfiguration

描述 Chef 配置。有关更多信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack ChefConfiguration 参数。

注意

要启用 Berkshelf,您必须在支持 Berkshelf 的 ConfigurationManager 属性中选择 Chef 版本。

Required: No

类型AWS OpsWorks ChefConfiguration 类型

更新要求无需中断

CloneAppIds

如果您正在克隆 AWS OpsWorks 堆栈,则为要包括在克隆的堆栈中源堆栈的 AWS OpsWorks 应用程序堆栈 ID 的列表。

Required: No

Type: List of String values

更新要求替换

ClonePermissions

如果您正在克隆 AWS OpsWorks 堆栈,指示是否克隆源堆栈的权限。

Required: No

Type: Boolean

更新要求替换

ConfigurationManager

描述配置管理器。创建堆栈时,使用配置管理器指定 Chef 版本。有关受支持的 Chef 版本,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack ConfigurationManager 参数。

Required: No

类型AWS OpsWorks StackConfigurationManager 类型

更新要求无需中断

CustomCookbooksSource

包含检索存储库中食谱所需的信息。

Required: No

类型AWS OpsWorks 源类型

更新要求无需中断

CustomJson

用户定义的自定义 JSON 对象。自定义 JSON 用于覆盖对应默认堆栈配置 JSON 值。有关更多信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack

重要

AWS CloudFormation 以字符串形式提交所有 JSON 属性,包括任何布尔值或数值属性。如果您有需要布尔值或数值的配方,则必须修改配方以接受字符串并将这些字符串解释为布尔值或数值。

Required: No

Type: JSON object

更新要求无需中断

DefaultAvailabilityZone

堆栈的默认可用区,必须处于指定区域中。

Required: No

Type: String

更新要求无需中断

DefaultInstanceProfileArn

作为堆栈的所有 IAM 实例的默认配置文件的 Amazon EC2 实例配置文件 Amazon 资源名称 (ARN)。

Required: Yes

Type: String

更新要求无需中断

DefaultOs

堆栈的默认操作系统。有关更多信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack

Required: No

Type: String

更新要求无需中断

DefaultRootDeviceType

默认根设备类型。该值默认用于堆栈中的所有实例,但是您可以在创建实例时将其覆盖。有关更多信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack

Required: No

Type: String

更新要求无需中断

DefaultSshKeyName

堆栈实例的默认 SSH 密钥。创建或更新实例时,可以覆盖该值。

Required: No

Type: String

更新要求无需中断

DefaultSubnetId

堆栈的默认子网 ID。所有实例都在该子网中启动,除非您在创建实例时指定了其他子网 ID。

Required: Conditional。如果您指定了 VpcId 属性,则必须指定该属性。

Type: String

更新要求无需中断

EcsClusterArn

要向 AWS OpsWorks 堆栈注册的 Amazon Elastic Container Service (Amazon ECS) 群集的 Amazon 资源名称 (ARN)。

注意

如果您指定向另一个 AWS OpsWorks 堆栈注册的某个群集,AWS CloudFormation 将在注册该群集之前取消注册现有关联。

Required: No

Type: String

更新要求无需中断

ElasticIps

要向 AWS OpsWorks 堆栈注册的弹性 IP 地址的列表。

注意

如果您指定向另一个 AWS OpsWorks 堆栈注册的某个 IP 地址,AWS CloudFormation 将在注册该 IP 地址之前取消注册现有关联。

Required: No

Type: AWS OpsWorks 堆栈 ElasticIp 列表

更新要求无需中断

HostnameTheme

堆栈的主机名主题(空格替换为下划线)。该主题用于生成堆栈实例的主机名。有关更多信息,请参阅 AWS OpsWorks Stacks API Reference 中的 CreateStack

Required: No

Type: String

更新要求无需中断

Name

AWS OpsWorks 堆栈的名称。

Required: Yes

Type: String

更新要求无需中断

RdsDbInstances

要向 AWS OpsWorks 堆栈注册的 Amazon Relational Database Service (Amazon RDS) 数据库实例。

注意

如果您指定向另一个 AWS OpsWorks 堆栈注册的某个数据库实例,AWS CloudFormation 将在注册该数据库实例之前取消注册现有关联。

Required: No

Type: AWS OpsWorks 堆栈 RdsDbInstance 列表

更新要求无需中断

ServiceRoleArn

AWS OpsWorks 用于代表您使用 AWS 资源的 AWS Identity and Access Management (IAM) 角色。您必须指定现有 IAM 角色的 Amazon 资源名称 (ARN)。

Required: Yes

Type: String

更新要求替换

SourceStackId

如果您正在克隆 AWS OpsWorks 堆栈,则为要克隆的源 AWS OpsWorks 堆栈的堆栈 ID。

Required: No

Type: String

更新要求替换

UseCustomCookbooks

堆栈是否使用自定义食谱。

Required: No

Type: Boolean

更新要求无需中断

UseOpsworksSecurityGroups

是否将 AWS OpsWorks 内置安全组与堆栈的层关联。

Required: No

Type: Boolean

更新要求无需中断

VpcId

启动堆栈的 VPC的 ID 必须处于指定区域中。所有实例都在该 VPC 中启动。如果您指定了该属性,则必须指定 DefaultSubnetId 属性。

Required: No

Type: String

更新要求替换

返回值

Ref

当该资源的逻辑 ID 提供给 Ref内部函数时,Ref 将返回资源名称。 示例:

{ "Ref": "myStack" }

对于 AWS OpsWorks 堆栈 myStackRef 返回 AWS OpsWorks 堆栈 ID。

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

模板代码段

以下代码段创建一个 AWS OpsWorks 堆栈,该堆栈使用您首次使用 AWS OpsWorks 之后被创建的默认服务角色和 Amazon EC2 角色:

JSON

"myStack" : { "Type" : "AWS::OpsWorks::Stack", "Properties" : { "Name" : {"Ref":"OpsWorksStackName"}, "ServiceRoleArn" : { "Fn::Join": ["", ["arn:aws:iam::", {"Ref":"AWS::AccountId"}, ":role/aws-opsworks-service-role"]] }, "DefaultInstanceProfileArn" : { "Fn::Join": ["", ["arn:aws:iam::", {"Ref":"AWS::AccountId"}, ":instance-profile/aws-opsworks-ec2-role"]] }, "DefaultSshKeyName" : {"Ref":"KeyName"} } }

YAML

myStack: Type: "AWS::OpsWorks::Stack" Properties: Name: Ref: "OpsWorksStackName" ServiceRoleArn: Fn::Join: - "" - - "arn:aws:iam::" - Ref: "AWS::AccountId" - ":role/aws-opsworks-service-role" DefaultInstanceProfileArn: Fn::Join: - "" - - "arn:aws:iam::" - Ref: "AWS::AccountId" - ":instance-profile/aws-opsworks-ec2-role" DefaultSshKeyName: Ref: "KeyName"

附加信息