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

问题描述 投票:1回答:1

我正在按照AWS指南将HA Wordpress站点部署到Elastic Beanstalk,其中包括使用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?

amazon-web-services amazon-elastic-beanstalk
1个回答
1
投票

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

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

来自functions docsCloudFormation docs

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

© www.soinside.com 2019 - 2024. All rights reserved.