我正在尝试在cloudformation中编写一个转换宏,该宏会将给定的字符串格式化为S3存储桶名称前缀。我以lambda的形式写出了脚本并创建了宏,但是却收到一条错误消息,提示我的转换宏名称不存在。
BucketNameFormattingMacro:
Type: AWS::CloudFormation::Macro
Properties:
Description: Changes strings to be formatted properly to be added to S3 bucket names.
FunctionName: !GetAtt BucketNameFormattingScript.Arn
TransformFunctionPermissions:
Type: AWS::Lambda::Permission
Properties:
Action: 'lambda:InvokeFunction'
FunctionName: !GetAtt BucketNameFormattingScript.Arn
Principal: 'cloudformation.amazonaws.com'
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName:
Fn::Transform:
- Name: BucketNameFormattingMacro
Parameters:
InputString: !Sub '{ENV}-bucket'
运行脚本会引发以下情况:
“未找到名为699790013825 :: BucketNameFormattingMacro的转换。用户请求回滚。”
在宏名之前有一个数字字符串,我没有把它怀疑是问题的一部分。为什么这些数字在那里?如何正确引用转换以在存储桶名称中使用它?