我正在尝试用/形成一个文本。这是我的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
我收到以下错误:
属性值AliasName必须是String
类型如何实现上述目标并传递约束问题?或者它有可能吗?
答案 0 :(得分:1)
尝试使用Sub内部函数,如下所示(未测试)
AliasName: !Sub
- alias/${project}-${EnvironmentApp}
- { project: !Ref project, EnvironmentApp: !Ref EnvironmentApp}
根据AWS::KMS::Alias的Cloudformation文档,您必须包含/
在这种情况下,您不需要DependsOn
,因为KMSKey
TargetKeyId