gpt4 book ai didi

python - 显示 ec2.describe.instance.status 的参数

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:33 25 4
gpt4 key购买 nike

我在无服务器框架上编写了一个 lambda 函数,它返回实例的状态,我使用了 boto3

describe_instance_status()    

我的代码工作正常,我获得了所有参数,但我只想显示实例的状态(待处理|正在运行|正在关闭)。

这是我的代码:

 import json
import boto3
import logging
import sys
import os
import traceback

# Import local dependencies sys.path.append('./site-packages')

from botocore.exceptions import ClientError from pprint import pprint

#setup simple logging for INFO logger = logging.getLogger()
logger.setLevel(logging.INFO)

from botocore.exceptions import ClientError


def instance_status(event, context):
"""Take an instance Id and return its status"""
body = {}
status_code = 200

try:
client = boto3.client('ec2')
r = client.describe_instance_status(InstanceIds=['i-070ad081'])
body["message"] = str(r)
except Exception as e:
print(traceback.format_exc())
status_code = 500
body["message"] = str(e)
#need a json body to return the status
response = {
"statusCode": status_code,
"body": json.dumps(body)
}
return response

这是 http 输出:

{
"message": "{u'InstanceStatuses': [{u'InstanceId': 'i-070ad071', u'InstanceState': {u'Code': 16, u'Name': 'running'}, u'AvailabilityZone': 'us-east-1a', u'SystemStatus': {u'Status': 'ok', u'Details': [{u'Status': 'passed', u'Name': 'reachability'}]}, u'InstanceStatus': {u'Status': 'ok', u'Details': [{u'Status': 'passed', u'Name': 'reachability'}]}}], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '35684bc5-2ab5-4225-8f8b-66bb217866f8', 'HTTPHeaders': {'transfer-encoding': 'chunked', 'vary': 'Accept-Encoding', 'server': 'AmazonEC2', 'content-type': 'text/xml;charset=UTF-8', 'date': 'Tue, 26 Sep 2017 09:36:15 GMT'}}}"
}

最佳答案

不要使用 str(r),因为它会将其转换为 Python 字典的字符串化表示形式。

try:
client = boto3.client('ec2')
r = client.describe_instance_status(InstanceIds=['i-070ad081'])
# Use 'r' instead of 'str(r)'
body["message"] = r
except Exception as e:
print(traceback.format_exc())
status_code = 500
body["message"] = str(e)

# need a json body to return the status
response = {
"statusCode": status_code,
"body": json.dumps(body)
}

return response

关于python - 显示 ec2.describe.instance.status 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46423346/

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