我可以将测试数据注入EC2 API调用中吗

时间:2019-02-20 04:28:23

标签: python amazon-web-services testing aws-lambda

我已经实现了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实例即可进行测试。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用您显示的代码是不可能的。

当代码调用ec2.Instance()时,它正在从Amazon EC2服务中检索真实数据。

如果您希望“伪造”此类呼叫,则需要修改代码以返回特定的响应。这就是所谓的代码“存根”,它假装以特定的方式表现。