当我尝试同时使用 / 和 sub 函数时出现约束问题

get constraint issue when I try to use / and sub function together

我正在尝试用 / 组成文本。这是我的 cloudformation 代码:

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

我在这一行收到约束验证错误:

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

显然 cfn 不喜欢 / 那里。但是,当我用静态的东西替换子函数时:

"AliasName": alias/test

另外当我按如下方式使用 join 时:

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

我收到以下错误:

属性 别名的值必须是字符串类型

如何实现上述并通过约束问题?或者根本不可能吗?

尝试使用 Sub 内部函数如下(未测试)

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

根据 AWS::KMS::Alias 的 Cloudformation 文档,您必须 包含 /

此外,在这种情况下您不需要 DependsOn,因为 KMSKeyTargetKeyId

中被引用