AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

函数

您可以使用配置文件中的函数,为包含来自其他资源或来自 Elastic Beanstalk 配置选项设置的信息的资源属性填充值。Elastic Beanstalk 支持 AWS CloudFormation 函数(RefFn::GetAttFn::Join)和一个特定于 Elastic Beanstalk 的函数 Fn::GetOptionSetting

Ref

使用 Ref 可检索 AWS 资源的默认字符串表示形式。Ref 返回的值取决于资源类型,有时也取决于其他因素。例如,安全组 (AWS::EC2::SecurityGroup) 将返回安全组的名称或 ID,这取决于安全组是位于默认 Amazon Virtual Private Cloud (Amazon VPC)、EC2 classic 还是自定义 VPC 中。

{ "Ref" : "resource name" }

注意

有关每个资源类型的详细信息(包括 Ref 的返回值),请参阅 AWS CloudFormation 用户指南 中的 AWS 资源类型参考

在示例 Auto Scaling 生命周期挂钩中:

Resources: lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }

您还可以使用 Ref 检索在同一文件的其他位置或在不同配置文件中定义的 AWS CloudFormation 参数的值。

Fn::GetAtt

使用 Fn::GetAtt 可检索 AWS 资源上的属性的值。

{ "Fn::GetAtt" : [ "resource name", "attribute name"] }

在示例 Auto Scaling 生命周期挂钩中:

Resources: lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }

有关更多信息,请参阅 Fn::GetAtt

Fn::Join

使用 Fn::Join 可组合带有一个分隔符的字符串。这些字符串可以进行硬编码,也可以使用来自 Fn::GetAttRef 的输出。

{ "Fn::Join" : [ "delimiter", [ "string1", "string2" ] ] }

有关更多信息,请参阅 Fn::Join

Fn::GetOptionSetting

使用 Fn::GetOptionSetting 可检索应用于环境的配置选项设置的值。

"Fn::GetOptionSetting": Namespace: "namespace" OptionName: "option name" DefaultValue: "default value"

存储私有密钥示例中:

Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["elasticbeanstalk-us-west-2-123456789012"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"