AWS CDK创建Pinpoint项目后如何获取对应的Project/Application ID
AWS CDK获取Pinpoint Project ID的正确方法
现象说明
你遇到的pinpointProject.ref返回项目名称的情况,是CDK运行阶段的正常表现:这类部署时才会生成的资源属性,在本地执行CDK代码时只会显示为Token占位符,实际部署到CloudFormation后,会自动替换为官方文档承诺的Pinpoint Application ID,直接在代码中传递给其他资源使用不会有问题。
推荐获取方式
CDK为pinpoint.CfnApp封装了专门的attrId属性,语义明确指向Pinpoint应用的唯一标识符,比通用的ref更不容易混淆,用法如下:
const pinpointProject = new pinpoint.CfnApp(this, 'PinpointNotificationProject', { name: 'myProject', }); // 直接获取Application ID const pinpointAppId = pinpointProject.attrId;
扩展说明
- 如果需要在部署后拿到真实的ID值,可以在CDK栈中添加输出项,部署完成后即可在终端或CloudFormation控制台查看:
new cdk.CfnOutput(this, 'PinpointAppId', { value: pinpointAppId });
- 除非你调用CDK的Token解析方法主动处理,否则不要在本地代码逻辑中对这类占位符做字符串判断、拼接等操作,需要拼接的场景请使用
cdk.Fn.join等CloudFormation原生函数处理。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

