如何使用Python检索AWS Lambda公共IP地址?

时间:2018-02-05 09:18:21

标签: python amazon-web-services lambda aws-lambda ip-address

我的应用程序是使用链接(url)来调用lambda函数,然后我想知道lambda的公共IP并获取页面源。我如何通过使用python获取lambda公共IP? 非常感谢。

3 个答案:

答案 0 :(得分:4)

您可以卷曲到checkip.amazonaws.com以获取公共IP。

import requests
requests.get('http://checkip.amazonaws.com').text.rstrip()

输出:

52.x.147.64

答案 1 :(得分:1)

我建议:

from botocore.vendored import requests
requests.get('http://checkip.amazonaws.com').text.rstrip()

在您的lambda函数内部。

否则,您可能会收到一条错误消息,指出lambda无法找到requests,除非您是通过包含通过requests安装的pip的.zip文件创建了lambda的。

答案 2 :(得分:1)

import urllib3
http = urllib3.PoolManager()
response = http.request('GET', 'http://checkip.amazonaws.com')
response.__dict__

'_body' 属性中找到的 IP 地址。

替代解决方案由于:

  1. 无法使用 requests,因为它不是核心的一部分
  2. 发现 AWS 删除的 botocore 供应商版本 here