从option_settings引用自定义资源

时间:2018-11-13 21:22:12

标签: amazon-cloudformation amazon-elastic-beanstalk

比方说,在我的.ebextensions文件夹中有一个文件01-resources.config,其中包含类似

Resources:
  LoadBalancerSecurityGroup: 
    Type: "AWS::EC2::SecurityGroup"
    Properties: 
      GroupName: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, "-ELB-SecurityGroup" ]] }
      GroupDescription: "and so on..."

然后有一个02-options.config,其中包含:

option_settings:
  aws:elbv2:loadbalancer:
    SecurityGroups:
      - { "Fn::GetAtt" : [ "LoadBalancerSecurityGroup", "GroupId" ] }
    AccessLogsS3Prefix: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, "-LoadBalancerLogs"]] }

在两种情况下,Elastic Beanstalk(或CloudFormation)都可以评估/替换AWSEBEnvironmentName参数。但是不评估"Fn::GetAtt"(或替代地,"Ref")。更新环境时,出现如下错误:

  

更新名为sg-xxxxx的安全组失败原因:无效的ID:“ {” Fn :: GetAtt“:[” LoadBalancerSecurityGroup“,” GroupId“]}”“(期望” sg -...“)

知道我在做什么错吗?我确信这是有可能的,否则,如果您不能从选项部分中引用自定义资源,那么作为Elastic Beanstalk堆栈的一部分创建自定义资源的用途将受到限制。

我已经以确保首先创建要引用的资源的方式命名了文件。

0 个答案:

没有答案
相关问题