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

如何配置AWS预算告警触发动作实现Lambda服务超支自动关停?

方案失效核心原因

你之前的操作无效是混淆了Lambda执行角色的作用:

  • Lambda的服务角色(执行角色)是Lambda运行过程中调用其他AWS服务(例如S3、DynamoDB)时使用的身份,附加AWSDenyAll只会阻止Lambda运行时访问其他AWS资源,不会限制外部对Lambda本身的调用请求,因此调整后Lambda依然可以正常访问。

可落地的预算触发关停方案

前置准备:创建专属自动化执行角色

新建一个独立的IAM角色,信任主体设置为budgets.amazonaws.com,为该角色附加对应资源的管理权限:

  • Lambda配置管理权限:包含lambda:UpdateFunctionUrlConfig、lambda:PutFunctionPolicy、lambda:RemovePermission等操作
  • 若使用API网关对接Lambda,额外补充API网关的部署/配置修改权限
    注意:不要将该权限授予Lambda本身的执行角色,两个角色的作用完全独立

关停逻辑选型(二选一即可,优先选第一种)

方案1:直接关闭公开访问入口

如果你的Lambda通过函数URL公开:
触发告警时调用UpdateFunctionUrlConfig接口,将函数URL的InvokeMode参数设置为DISABLED,即可直接切断所有公开调用路径。
如果你的Lambda通过API网关公开:
触发告警时调用API网关接口,禁用对应部署阶段的访问权限即可。

方案2:附加Lambda资源级拒绝策略

直接为Lambda函数本身添加资源级权限策略,拒绝所有主体的调用请求,策略示例如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyAllInvokeAccess",
            "Effect": "Deny",
            "Action": "lambda:InvokeFunction",
            "Resource": "替换为你的Lambda函数ARN",
            "Principal": "*"
        }
    ]
}

该策略优先级高于所有其他允许策略,添加后所有调用Lambda的请求都会被直接拒绝。

绑定预算告警动作

在AWS Budgets中创建阈值为0.01美元的预算告警,告警触发时指定使用前置准备中创建的自动化角色,执行你选择的关停逻辑即可。
配置完成后可手动调整阈值触发一次测试,确认关停逻辑生效后再将阈值改回原值即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:15:02