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

其他 AWS CloudFormation 模板密钥

我们已从 AWS CloudFormation 中引入配置文件键,如 Resourcesfilespackages。Elastic Beanstalk 会将配置文件的内容添加到支持您的环境的 AWS CloudFormation 模板中,这样您便可以使用其他 AWS CloudFormation 部分在配置文件中执行高级任务。

参数

参数是 Elastic Beanstalk 自己的自定义选项的替代项,您可以用它来定义要在配置文件的其他位置使用的值。与自定义选项相似,您可以使用参数在一个位置收集用户可配置值。与自定义选项不同,您不能使用 Elastic Beanstalk 的 API 来设置参数值,并且模板中可以定义的参数数量受 AWS CloudFormation 限制。

您可能想要使用参数的一个原因是使您的配置文件是 AWS CloudFormation 模板的两倍。如果您使用参数而不是使用自定义选项,则可以使用配置文件在 AWS CloudFormation 中创建与它自己的堆栈中相同的资源。例如,您可能有一个配置文件用于向环境中添加用于测试的 Amazon EFS 文件系统,然后使用同一个文件创建不为生产用途而绑定到环境生命周期的独立文件系统。

以下示例演示使用参数在配置文件顶部收集用户可配置的值。

loadbalancer-accesslogs-existingbucket.config – 参数

Parameters: bucket: Type: String Description: "Name of the Amazon S3 bucket in which to store load balancer logs" Default: "my-bucket" bucketprefix: Type: String Description: "Optional prefix. Can't start or end with a /, or contain the word AWSLogs" Default: ""

输出

您可以使用 Outputs 块将有关已创建资源的信息导出到 AWS CloudFormation。然后,您可以使用 Fn::ImportValue 函数将值拉入到 Elastic Beanstalk 之外的 AWS CloudFormation 模板中。

以下示例创建 Amazon SNS 主题并使用名称 NotificationTopicArn 将它的 ARN 导出到 AWS CloudFormation。

sns-topic.config

Resources: NotificationTopic: Type: AWS::SNS::Topic Outputs: NotificationTopicArn: Description: Notification topic ARN Value: { "Ref" : "NotificationTopic" } Export: Name: NotificationTopicArn

在用于不同环境的配置文件或在 Elastic Beanstalk 外的 AWS CloudFormation 模板中,您可以使用 Fn::ImportValue 函数来获取导出的 ARN。此示例将导出的值分配给名为 TOPIC_ARN 的环境属性。

例 env.config

option_settings: aws:elasticbeanstalk:application:environment: TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'

映像

您可以使用映射来存储按命名空间组织的键-值对。映射可以帮助组织您在配置中使用的值,或根据其他值来更改参数值。例如,以下配置根据当前区域来设置账户 ID 参数的值。

loadbalancer-accesslogs-newbucket.config – 映射

Mappings: Region2ELBAccountId: us-east-1: AccountId: "111122223333" us-west-2: AccountId: "444455556666" us-west-1: AccountId: "123456789012" eu-west-1: AccountId: "777788889999" ... Principal: AWS: ? "Fn::FindInMap" : - Region2ELBAccountId - Ref: "AWS::Region" - AccountId

本页内容: