Ссылка на пользовательские ресурсы из option_settings - PullRequest
0 голосов
/ 14 ноября 2018

Допустим, в моей папке .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 Причина: неверный идентификатор: "{" Fn :: GetAtt ": [" LoadBalancerSecurityGroup "," GroupId "]}" (ожидается "sg -...")

Есть идеи, что я делаю не так? Я уверен, что это должно быть возможно, в противном случае создание пользовательских ресурсов в составе стека Elastic Beanstalk будет иметь ограниченное использование, если вы не можете ссылаться на него из раздела параметров.

Я уже назвал файлы таким образом, чтобы убедиться, что ресурс, на который я ссылаюсь, создается первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...