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

AWS CDK报错:使用参数创建SNS HTTPS订阅需指定协议

解决AWS CDK中UrlSubscription动态URL参数的报错问题

问题原因

当使用动态解析的URL(比如CloudFormation参数pagerduty_url的value_as_string)创建SNS的UrlSubscription时,CDK在合成阶段无法提前识别URL的协议类型,因此会抛出Must provide protocol if url is unresolved错误。而硬编码字符串URL时,CDK可以直接解析出协议,所以不会触发这个报错。

解决方案

显式指定UrlSubscription的protocol参数,明确URL使用的协议(PagerDuty通常使用HTTPS协议)。

修改后的代码示例:

from aws_cdk import aws_sns_subscriptions as subscriptions

# 假设pagerduty_url是你定义的CfnParameter
my_sns_topic.add_subscription(
    subscriptions.UrlSubscription(
        pagerduty_url.value_as_string,
        protocol=subscriptions.SubscriptionProtocol.HTTPS
    )
)

补充说明

  • 如果你的PagerDuty URL使用的是HTTP协议,将protocol值改为subscriptions.SubscriptionProtocol.HTTP即可。
  • 该规则适用于所有动态生成的URL(比如来自其他AWS资源的属性值、参数存储的值等),只要URL在CDK合成阶段无法被静态解析,就必须显式指定协议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:06:17