本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
函數
針對來自其他資源或來自 Elastic Beanstalk 組態選項設定之資訊的資源屬性,您可使用組態檔案中的函數產生其值。Elastic Beanstalk 支援 AWS CloudFormation 函數 (Ref
、Fn::GetAtt
、Fn::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::GetAtt
或 Ref
的輸出。
{ "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"