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

如何通过Serverless Framework为CloudFormation栈传递SNS Topic ARN

使用Serverless Framework配置CloudFormation栈的SNS通知

1. 配置serverless.yml核心文件

Serverless Framework靠serverless.yml管理配置,要实现你用AWS CLI指定--notification-arns的效果,有两种简单方式:

方式一:直接在provider块定义

在provider节点下添加notificationArns属性,推荐用环境变量灵活传入SNS Topic的ARN,和CLI里的${SNS_TOPIC_ARN}逻辑一致:

service: my-cloudformation-service

provider:
  name: aws
  region: us-east-1
  notificationArns:
    - ${env:SNS_TOPIC_ARN}

resources:
  # 这里粘贴你原test.yaml里的CloudFormation资源,比如示例S3桶:
  Resources:
    MyStackBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: my-notification-test-bucket

方式二:引入外部模板并配置通知

如果你的资源定义还是单独的test.yaml文件,直接在resources块里引入该文件,同时添加通知配置:

service: my-cloudformation-service

provider:
  name: aws
  region: us-east-1

resources:
  # 引入外部CloudFormation模板,对应CLI的--template-body file://test.yaml
  - ${file(test.yaml)}
  # 配置通知ARN
  NotificationARNs:
    - ${env:SNS_TOPIC_ARN}

2. 传入SNS Topic ARN

和CLI的变量逻辑对应,你可以用两种方式传值:

  • 终端临时设置:运行export SNS_TOPIC_ARN=arn:aws:sns:us-east-1:123456789012:your-topic-arn
  • 用.env文件(需安装serverless-dotenv-plugin插件):在项目根目录创建.env文件,写入:
    SNS_TOPIC_ARN=arn:aws:sns:us-east-1:123456789012:your-topic-arn
    

3. 部署栈

执行部署命令,效果和AWS CLI的create-stack完全一致:

serverless deploy --stack-name my-cloudformation

后续更新栈直接运行serverless deploy即可,Serverless会自动处理更新逻辑,通知配置也会同步保留。

验证配置

部署完成后,登录AWS控制台打开对应CloudFormation栈,查看「通知」标签,确认SNS Topic ARN已正确配置。之后栈的创建、更新、删除操作都会触发邮件通知到该Topic的订阅邮箱。

内容的提问来源于stack exchange,提问作者Franz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:05:10