【发布时间】:2019-11-12 13:08:11
【问题描述】:
我有 lambda,它在 VPN 隧道关闭或启动时由 cloudwatch 事件触发。我在网上搜索但找不到触发此 cloudwatch 事件的方法。 我看到了测试事件的选项,但我可以在这里输入什么来触发隧道开启或关闭的事件?
【问题讨论】:
标签: amazon-web-services aws-lambda
我有 lambda,它在 VPN 隧道关闭或启动时由 cloudwatch 事件触发。我在网上搜索但找不到触发此 cloudwatch 事件的方法。 我看到了测试事件的选项,但我可以在这里输入什么来触发隧道开启或关闭的事件?
【问题讨论】:
标签: amazon-web-services aws-lambda
您可以查看CloudWatchEventsandEventPatterns
Amazon CloudWatch Events 中的事件表示为 JSON 对象。 有关 JSON 对象的更多信息,请参阅RFC 7159。以下 是一个示例事件:
{
"version": "0",
"id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
"detail-type": "EC2 Instance State-change Notification",
"source": "aws.ec2",
"account": "111122223333",
"time": "2017-12-22T18:43:48Z",
"region": "us-west-1",
"resources": [
"arn:aws:ec2:us-west-1:123456789012:instance/ i-1234567890abcdef0"
],
"detail": {
"instance-id": " i-1234567890abcdef0",
"state": "terminated"
}
}
也可以根据事件记录,您可以从AWS CW EventTypes中选择您需要的事件
【讨论】:
我相信在您的场景中,您不需要传递任何输入数据,因为您必须构建逻辑来测试 Lamda 内的 VPN 隧道连接。您可以从测试事件中删除该 JSON,然后运行测试。
如果您需要在输入事件中传递一些信息,请遵循@Adiii 提到的方法。
编辑 通过评论说这个问题更清楚了
但问题是我将如何触发 lambda?可以说我想 当隧道关闭时触发它?如何让 lambda 知道隧道在 下状态? – 新手
这可以通过在 Cloudwatch 中设置规则以定期安排 lambda 触发器来实现。更多细节在这里:
Tutorial: Schedule AWS Lambda Functions Using CloudWatch Events
Lambda 目前没有可以监控 VPN 隧道的调用触发器,因此唯一的解决方法是通过 lamda 轮询状态。
【讨论】: