我有lambda,当VPN隧道关闭或开启时,它由cloudwatch事件触发。我在网上搜索,但找不到触发此Cloudwatch事件的方法。 我看到了一个测试事件选项,但是我可以在此处输入什么来触发隧道打开或关闭的事件?
答案 0 :(得分:0)
您可以查看CloudWatchEventsandEventPatterns
Amazon CloudWatch事件中的事件表示为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
中选择所需的事件答案 1 :(得分:0)
我相信在您的情况下,您不需要传递任何输入数据,因为您必须已经构建了测试Lamda中VPN隧道连接性的逻辑。您可以从测试事件中删除该JSON,然后运行测试。
如果您需要在输入事件中传递一些信息,请遵循@Adiii提到的方法。
编辑 通过评论,这个问题更加清晰
但是问题是我将如何触发lambda?可以说我想 隧道关闭时触发它吗?如何让Lambda知道隧道在 跌落状态? – NoviceMe
这可以通过在Cloudwatch中设置规则来定期安排lambda触发器来实现。这里有更多详细信息:
Tutorial: Schedule AWS Lambda Functions Using CloudWatch Events
Lambda目前没有可监视VPN隧道的调用触发器,因此唯一的解决方法是通过lamda轮询状态。