我無法找到與boto3代碼。我能夠單獨獲取elb名稱和InstanceID,但無法將它們鏈接在一起以查找ELB名稱的附加實例。如何查詢AWS以獲取使用python boto3模塊的ELB名稱和附加實例?
-2
A
回答
0
這是我的解決辦法我得到它的工作。謝謝約翰。
elbList = boto3.client('elb')
ec2 = boto3.resource('ec2')
bals = elbList.describe_load_balancers()
for elb in bals['LoadBalancerDescriptions']:
print 'ELB DNS Name : ' + elb['DNSName']
for ec2Id in elb['Instances']:
running_instances = \
ec2.instances.filter(Filters=[{'Name': 'instance-state-name'
, 'Values': ['running']},
{'Name': 'instance-id',
'Values': [ec2Id['InstanceId']]}])
for instance in running_instances:
print(" Instance : " + instance.public_dns_name);
2
經典負載平衡器
的boto3 describe_load_balancers()
函數返回實例的列表:
{
'LoadBalancerDescriptions': [
{
'LoadBalancerName': 'string',
'DNSName': 'string',
....
'Instances': [
{
'InstanceId': 'string'
},
],
....
},
],
'NextMarker': 'string'
}
的Instances
部返回負載平衡器的實例的ID。
應用負載平衡器(ELBv2)
這一個是硬。應用程序負載平衡器有多個目標組。實例上的端口已註冊到目標組。
似乎List實例在目標集團的唯一命令是describe_target_health()
,它返回實例和端口(因爲一個實例可以服務於多個目標):
{
'TargetHealthDescriptions': [
{
'Target': {
'Id': 'i-0f76fade',
'Port': 80,
},
'TargetHealth': {
'Description': 'Given target group is not configured to receive traffic from ELB',
'Reason': 'Target.NotInUse',
'State': 'unused',
},
},
{
'HealthCheckPort': '80',
'Target': {
'Id': 'i-0f76fade',
'Port': 80,
},
'TargetHealth': {
'State': 'healthy',
},
},
],
'ResponseMetadata': {
'...': '...',
},
}
0
這是一個簡單的腳本找到實例連接到ELB的列表,輸入您可能必須提供ELB名稱
#!/usr/bin/python
import boto3
import sys
import string
elb_name = raw_input("What is ELB name? :: ")
print ("\n")
print ("THE LIST OF INSTANCES ATTACHED TO THIS ELB IS \n")
elbList = boto3.client('elb')
ec2 = boto3.resource('ec2')
bals = elbList.describe_load_balancers()
for elb in bals['LoadBalancerDescriptions']:
set2 = elb['LoadBalancerName']
if elb_name == set2 :
inst = elb['Instances']
ct = sys.getrefcount(inst)
count = ct
for x in range(count):
iv = elb['Instances'][x]
id = str(iv.values())
id = string.replace(id, "'", "")
print id.strip('[]')
相關問題
- 1. 如何從AWS中的實例獲取實例名稱?
- 2. 使用AWS CLI獲取實例的名稱和ARN列表
- 3. aws ELB和實例之間的加密如何工作
- 4. AWS CLI中添加名稱的描述,實例查詢
- 5. 使用boto3列出AWS實例類型
- 6. 如何獲取AWS中實例的名稱標籤?
- 7. PHP和MySQL查詢,以獲取名稱
- 8. 如何獲得AWS區域名稱(例如,美國東(N.弗吉尼亞州))的Python爲RDS使用boto3
- 9. 對AWS Cognito使用python boto3實現USER_SRP_AUTH
- 10. 如何獲取對象類定義的模塊名稱而不是對象實例化的模塊名稱?
- 11. 使用python的boto3庫登錄AWS實例
- 12. AWS NAT實例和ELB瓶頸
- 13. 如何使用模塊獲取進程ID,名稱和狀態
- 14. 從python包中獲取模塊名稱
- 15. Python - 獲取完整包模塊名稱
- 16. AWS RDS:如何使用boto3和jmespath獲取最新快照?
- 17. 使用SQL獲取DB2實例名稱
- 18. AWS Boto3 Dynamodb查詢問題
- 19. Opencart如何獲取模塊名稱?
- 20. ZF2,獲取模塊名稱,如何?
- 21. 如何使用Boto3在AWS實例上執行命令
- 22. Cloudflare使用AWS ELB的AWS ELB
- 23. 如何獲取查詢的列名稱
- 24. aws DynamoDB boto3查詢GROUP BY和ORDER BY
- 25. Python - Tkinter - 獲取比例/滑塊的名稱和值
- 26. 無法使用terraform將多個ec2實例添加到AWS ELB
- 27. 如何按名稱查詢加載的模塊?
- 28. Actionscript如何使用getChildByName獲取實例的名稱
- 29. ImportError:沒有名爲boto3的模塊
- 30. 通過變量模型名稱和pk獲取模型實例
@Sam嗨,如果這或任何答案有通過點擊複選標記解決您的問題,請考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 –