gpt4 book ai didi

python - 如何使用纯python/boto访问EMR主控私有(private)IP地址

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:40 28 4
gpt4 key购买 nike

我已经在这个网站和谷歌上进行了搜索,但未能找到答案。

我有一个从 EC2 实例运行的代码,该实例使用 boto 创建和管理 EMR 集群。我可以使用这个框架来获取 flow_id (或 cluster_id,不确定哪个是正确的名称),它以“j-”开头,并具有固定数量的字符来标识集群。

使用该框架,我可以建立 emr 或 ec2 连接,但我无法使用 boto 执行以下操作:

    aws emr --list-clusters --cluster-id=j-ASDFGHJKL | json '["instances"].[0].["privateipaddress"]

**上面的内容有点捏造,我不记得 json 格式以及 json 命令是什么或它想要什么参数,但 cli 仍然如此。

我已经 pprint.pprint()'ed 并使用inspect.getmembers()检查连接,将 conn 获取到特定的 cluster_id,但我还没有看到这个字段/var/属性有或没有方法调用。

我一直在亚马逊和 boto 上上下下,他们是怎么做的 here

    def test_list_instances(self): #line 317
...
self.assertEqual(response.instances[0].privateipaddress , '10.0.0.60')
...

附注我试过this但是 python 提示“instances”属性不可迭代,不可访问数组(我忘记了“var[0]”命名),以及我尝试过的其他方法,包括检查。顺便说一句,我可以从这里访问公共(public) DNS 地址以及许多其他内容,但不能访问私有(private) IP...

请告诉我,如果我在某个地方搞砸了,在哪里可以找到答案,我正在使用子进程进行丑陋的修复!

最佳答案

如果您要求获取 emr 的主 IP,则以下命令将起作用:

list_intance_resp =  boto3.client('emr',region_name='us-east-1').list_instances(ClusterId ='j-XXXXXXX')
print list_intance_resp['Instances'][len(list_intance_resp['Instances'])-1]['PrivateIpAddress']

关于python - 如何使用纯python/boto访问EMR主控私有(private)IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26228091/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com