我已经实现了Save AWS EC2 Cost by Automatically Stopping Idle Instance Using Lambda and CloudWatch的变体,但我希望能够对其进行测试。阅读Introduction To AWS Lambda For Dummies后,可以通过选择“配置测试事件”并添加以下内容来完成此操作:
{
"detail": {
"instance-id": "i-0123456789abcdef"
}
}
具有已知EC2实例的ID。但是我想要做的是注入被读取的数据:
ec2 = boto3.resource('ec2')
instance = ec2.Instance(instance_id)
if instance.instance_type.endswith('xlarge'):
put_cpu_alarm(instance_id)
因此,我不必运行EC2实例即可进行测试。这可能吗?
答案 0 :(得分:0)
使用您显示的代码是不可能的。
当代码调用ec2.Instance()
时,它正在从Amazon EC2服务中检索真实数据。
如果您希望“伪造”此类呼叫,则需要修改代码以返回特定的响应。这就是所谓的代码“存根”,它假装以特定的方式表现。