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

如何通过CloudWatch触发Lambda自动启动关闭的AWS Lightsail实例?

自动启动关闭的AWS Lightsail实例方案

核心思路

利用AWS EventBridge(原CloudWatch Events)监控Lightsail实例的状态变更事件,当实例变为stopped状态时触发你的Lambda函数执行启动操作。

步骤1:创建EventBridge规则

  1. 进入AWS控制台的EventBridge服务,选择左侧菜单的「规则」,点击「创建规则」。
  2. 自定义规则名称(比如StartStoppedLightsailInstances),规则类型选择「事件模式」。
  3. 在「事件模式」配置中:
    • 选择「自定义模式(JSON编辑器)」,输入以下事件模式:
      {
        "source": ["aws.lightsail"],
        "detail-type": ["Lightsail Instance State Change"],
        "detail": {
          "state": ["stopped"]
        }
      }
      
    • (可选)如果只想监控特定实例,在detail中添加instanceName或instanceArn字段过滤,比如:
      "detail": {
        "state": ["stopped"],
        "instanceName": ["你的实例名称"]
      }
      
  4. 点击「下一步」,在「目标」配置中:
    • 目标类型选择「Lambda函数」,然后选择你已有的启停Lambda函数。
    • 完成规则创建(控制台会自动为Lambda添加EventBridge的调用权限)。

步骤2:确认Lambda权限

确保你的Lambda执行角色拥有以下权限(若之前的启停函数已正常运行,大概率已配置):

  • lightsail:StartInstances:用于启动Lightsail实例
  • 若创建规则时未自动添加调用权限,可手动为Lambda添加以下策略:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "events.amazonaws.com"
          },
          "Action": "lambda:InvokeFunction",
          "Resource": "arn:aws:lambda:你的AWS区域:你的账号ID:function:你的Lambda函数名称"
        }
      ]
    }
    

步骤3:测试验证

手动停止目标Lightsail实例后,通过以下方式验证:

  1. 查看EventBridge规则的「已触发次数」,确认事件已被捕获。
  2. 进入Lambda控制台,查看函数的CloudWatch执行日志,验证函数是否正常运行。
  3. 检查Lightsail实例状态,确认是否自动启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:05:27