Получить проблему ограничения, когда я пытаюсь использовать / и подфункцию вместе

Я пытаюсь сформировать текст с помощью /. вот мой код облачной информации:

Resources:
  KeyAlias:
    Type: AWS::KMS::Alias
    DependsOn: KMSKey  
    Properties:
      AliasName: alias/!Sub ${project}-${EnvironmentApp}
      TargetKeyId:
        Ref: KMSKey

Я получаю ошибку проверки ограничения в этой строке:

AliasName: alias/!Sub ${project}-${EnvironmentApp}

Видимо cfn не любит / там. Однако, когда я заменяю функцию sub чем-то статичным, например:

"AliasName": alias/test

Также, когда я использую соединение следующим образом:

      AliasName:
        - Fn::Join:
          - "/"
          - - 'alias'
            - Ref: project
            - Ref: EnvironmentApp 

Я получаю следующую ошибку:

Значение свойства AliasName должно иметь тип String

Как я могу достигнуть вышеупомянутого и передать проблему ограничения? Или это вообще возможно?

1 ответ

Решение

Попробуйте использовать встроенную функцию Sub следующим образом (не проверено)

AliasName: !Sub
  - alias/${project}-${EnvironmentApp}
  - { project: !Ref project, EnvironmentApp: !Ref EnvironmentApp}

На основе документации Cloudformation для AWS::KMS::Aliasнеобходимо включить /

Также вам не нужно DependsOn в этом случае, так как KMSKey упоминается в TargetKeyId

Другие вопросы по тегам