如果python(django)应用程序正在EC2中运行,我如何使用boto进行检查?
我目前有一个部署到EC2的django应用程序。我打算在使用boto.utils时添加一些额外的日志信息,以获取实例id之类的信息。但是,在本地运行代码时,对boto.utils.get_instance_metadata()['instance-id']的调用只是挂起,而不是返回无或空字符串 我似乎无法在boto中看到是否有标志或函数来检查您是否在EC2上 有人知道吗如果python(django)应用程序正在EC2中运行,我如何使用boto进行检查?,python,django,amazon-web-services,boto,Python,Django,Amazon Web Services,Boto,我目前有一个部署到EC2的django应用程序。我打算在使用boto.utils时添加一些额外的日志信息,以获取实例id之类的信息。但是,在本地运行代码时,对boto.utils.get_instance_metadata()['instance-id']的调用只是挂起,而不是返回无或空字符串 我似乎无法在boto中看到是否有标志或函数来检查您是否在EC2上 有人知道吗 谢谢 检查元数据服务器是否存在是我所知道的检测是否在EC2实例上运行的最好(唯一?)方法。get\u instance\u m
谢谢 检查元数据服务器是否存在是我所知道的检测是否在EC2实例上运行的最好(唯一?)方法。
get\u instance\u metadata
函数接受两个可选参数,您可以提供这些参数来控制超时和重试策略。例如:
>>> boto.utils.get_instance_metadata(timeout=1, num_retries=1)
{}
>>>
将使用一秒钟的
超时时间
,然后重试一次。如果希望调用更快地返回,还可以将num_retries
指定为零。但是请注意,在实际的EC2实例上,您偶尔会收到失败的请求,因此至少重试一次会更安全。谢谢您的帮助-非常棒!