我希望我描述正确......
我遇到了 Lambda 无法解析像http://example.com:1234这样的 url 的问题
我必须改用ip。我想知道如何确保可以解析 url,尤其是当我使用的 url 是私有的时。谷歌的所有研究都将我指向 Route 53,但没有解释到底应该如何做到这一点。
有人遇到过类似的问题吗?
编辑:
为了更清楚:
我所做的就是使用 pyhtonrequests并调用我的 elasticsearch来插入一些数据,所以
response = requests.post(es_url, data=some_data, timeout=some_timeout)
这里es_url是<ip>:9200/some_index/some_type/
我想更改ip为人类可读的域,例如my_es.example.com在我的 EC2 实例中工作的域,但我无法在 lambda 函数中解析此名称
这对我来说可以。
我做了以下事情:
这是我使用的 Lambda (Python 3.6) 函数:
def lambda_handler(event, context):
import socket
data = socket.gethostbyname_ex('google.com')
print (data)
return
Run Code Online (Sandbox Code Playgroud)
这在没有 VPC 设置以及配置到私有子网的 VPC 下都有效。
然后我使用 ElastiCache 服务器的名称再次运行它:
def lambda_handler(event, context):
import socket
data = socket.gethostbyname_ex('stack.b155ae.0001.apse2.cache.amazonaws.com')
print (data)
return
Run Code Online (Sandbox Code Playgroud)
它返回:
('stack.b155ae.0001.apse2.cache.amazonaws.com', [], ['10.0.1.168'])
Run Code Online (Sandbox Code Playgroud)
因此,从 Lambda 解析 ElastiCache 名称似乎工作正常。
您的问题一定出在您的 Lambda 或 VPC 配置上(您是否更改了 DHCP 选项?)。
| 归档时间: |
|
| 查看次数: |
14106 次 |
| 最近记录: |