Облачная информация AWS с использованием внутренних функций Сэма - PullRequest
0 голосов
/ 13 сентября 2018

Как получается, что встроенная функция облачной информации! ImportValue не преобразуется в строку, когда я помещаю ее в функцию Join внутри определения тела моего серверного API-шаблона?

Этот шаблон облачной информации:

  UserAPI:
    Type: 'AWS::Serverless::Api'
    Properties:
      StageName: !ImportValue StageName
      DefinitionBody:
          'Fn::Transform':
            Name: 'AWS::Include'
            Parameters:
              Location: !Join [ "", [ "s3://", !ImportValue S3APIBucket, "/api_user.yaml" ] ]

Сгенерирует следующую ошибку:

Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: The value of parameter Location under transform Include must resolve to a string, number, boolean or a list of any of these.

Однако, если я заменю последнюю строку на:

Location: !Join [ "", [ "s3://", !Ref S3APIBucket, "/api_user.yaml" ] ]

И иметь S3APIBucket в качестве параметра, он работает нормально. Или иначе не используйте! Присоединяйтесь и просто жестко закодируйте имя сегмента s3, что также отлично работает.

...