使用AWS SDK JS v3创建SNS主题时DataProtectionPolicy解析错误求助
解决SNS CreateTopic时DataProtectionPolicy解析错误
错误原因:你在
CreateTopicCommand里填的DataProtectionPolicy: 'STRING_VALUE'是AWS文档里的占位符,并非合法的JSON格式,SNS服务无法解析这个无效字符串,因此抛出解析错误。解决方案1:如果不需要配置数据保护策略,直接删除该参数即可,这是最直接的修复方式:
const createTopicResponse = await client.send( new CreateTopicCommand({ Name: 'PushNotificationTestTopic', }) )
- 解决方案2:如果确实需要配置数据保护策略,必须传入合法的JSON字符串(不能用占位符)。以下是一个基础的合规策略示例:
// 定义符合AWS规范的数据保护策略对象 const dataProtectionPolicy = { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "SNS:Publish", "SNS:Subscribe" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalType": "Service" } } } ] }; // 转换为JSON字符串后传入参数 const createTopicResponse = await client.send( new CreateTopicCommand({ DataProtectionPolicy: JSON.stringify(dataProtectionPolicy), Name: 'PushNotificationTestTopic', }) )
注意:数据保护策略的格式必须严格遵循AWS的规范,核心要求是传入有效的JSON字符串,不能使用文档中的占位符文本。
内容的提问来源于stack exchange,提问作者realtebo
相关产品推荐
相关产品推荐

