使用boto3从Python脚本检测Amazon云中的执行

使用boto3从Python脚本检测Amazon云中的执行,python,aws-sdk,boto3,botocore,Python,Aws Sdk,Boto3,Botocore,我怎样才能发现我的python脚本是在AWS(EC2实例、ECS容器或Lambda)中执行的,而不是例如在我自己的工作站中执行的,在脚本中使用理想的boto3 我想,bot3会有某种方式说:“True-是的,你在AWS”或“False-不,你不是”。但是我找不到这样的东西 一些比较接近的东西似乎是boto.utils.get\u instance\u metadata——我想在我的工作站上执行时至少会失败,但显然这种功能甚至不存在于boto3: 为什么不使用请求模块连接到元数据服务器,并确定它是

我怎样才能发现我的python脚本是在AWS(EC2实例、ECS容器或Lambda)中执行的,而不是例如在我自己的工作站中执行的,在脚本中使用理想的
boto3

我想,
bot3
会有某种方式说:“
True
-是的,你在AWS”或“
False
-不,你不是”。但是我找不到这样的东西

一些比较接近的东西似乎是
boto.utils.get\u instance\u metadata
——我想在我的工作站上执行时至少会失败,但显然这种功能甚至不存在于
boto3

为什么不使用
请求
模块连接到元数据服务器,并确定它是否在
AWS
中运行

import requests

try:
  resp = requests.get('http://169.254.169.254', timeout=0.001)
  print 'In AWS'
except:
  print 'Not in AWS'

这个问题的措辞不是很清楚,你想知道你的脚本是否执行了吗?您尝试过CloudTrail吗?@EytanAvisror感谢-1并提供了评论。我更新了问题的更多细节。让我知道这是否足够。这并不重要,但我只对评论负责。关于你的Q-你的意思是,你想知道运行的脚本(例如创建实例的脚本)是从工作站执行的,还是从EC2实例/其他AWS对象执行的?请查看CloudTrail事件中的
源IP地址
。@Eytanavisor我会让它更详细一些,并链接到一些文档,并将该评论作为答案发布。