You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CloudFormation配置AWS::SNS::Topic的ArchivePolicy?

解决SNS主题ArchivePolicy的CloudFormation配置问题

问题原因

你遇到的错误是因为ArchivePolicy并非AWS::SNS::Topic资源的直接Properties字段,它属于SNS主题的自定义属性,需要通过TopicAttributes来配置,且值必须是JSON序列化后的字符串,不能直接使用YAML对象格式。

正确配置模板

原生CloudFormation/SAM模板写法

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Description: SNS topic for my application

Resources:
  MyTopic:
    Type: AWS::SNS::Topic
    Properties:
      TopicName: MyTopic
      TopicAttributes:
        ArchivePolicy: '{"MessageRetentionPeriod": 90}'

关键注意事项

  • 属性位置:必须将ArchivePolicy放在TopicAttributes字典下,这是SNS主题自定义属性的正确配置路径
  • 格式要求:ArchivePolicy的值必须是JSON字符串,不能直接写YAML结构(比如不能写成ArchivePolicy: {MessageRetentionPeriod: 90},需要用引号包裹成JSON字符串)
  • 取值范围:MessageRetentionPeriod的有效值是1到365天,你的90天配置符合要求

验证方式

部署前可以用SAM CLI的sam validate命令检查模板格式,确保JSON字符串的语法正确(比如引号配对、逗号使用等)。

内容的提问来源于stack exchange,提问作者T. Pubz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:12:08