如何将AWS资源ID插入应用程序配置文件

时间:2019-04-12 14:52:41

标签: amazon-web-services amazon-elastic-beanstalk

我正在遵循有关将HA Wordpress网站部署到Elastic Beanstalk的AWS指南,其中包括使用eb-php-wordpress扩展名。该过程需要在部署应用程序之前用已知的资源ID编辑几个配置文件。

特别是,说明说要使用VPC ID和子网ID编辑efs-create.config文件。该文件尤其有助于设置OptionSettings资源的AWS::ElasticBeanstalk::Environment属性。因此,我怀疑我应该只能使用Ref:来引用它。这是正确的,但是由于VPC将由另一个文件创建,并且EB环境Cloudformation堆栈是在VPC堆栈旁边而不是“内部”创建的?我是否需要使用Fn::调用来获取信息?

我正在使用的配置文件部分如下所示:

option_settings:
  aws:elasticbeanstalk:customoption:
    EFSVolumeName: "EB-EFS-Volume"
    VPCId: "vpc-XXXXXXXX"
## Subnet Options
    SubnetA: "subnet-XXXXXXXX"
    SubnetB: "subnet-XXXXXXXX"
    SubnetC: "subnet-XXXXXXXX"
    SubnetD: "subnet-XXXXXXXX"

VPCId行是否会像

VPCId: {Ref: VPC}

我创建的VPC资源的名称VPC在哪里?或者,更简单地说,如果我坚持使用默认VPC的VPC ID,该如何引用呢?

1 个答案:

答案 0 :(得分:1)

根据named resources,您应该能够使用Ref来获取弹性豆茎docs的各种ID。但是,VPC不是这些命名资源(即具有逻辑ID的资源)之一,而是 是其中一种命名资源的 property 。逻辑ID为AWSEBSecurityGroup,属性为VpcId,因此您应该可以使用GetAtt来获取它:

{ "Fn::GetAtt" : [ "AWSEBSecurityGroup", "VpcId" ] }

来自functions docsCloudFormation docs

类似的方法也应适用于子网。