我正在编写一个Python代码,使用Boto3SDK与AWS对话,但我有一些错误,我是Python的新手。
这是代码:
import logging
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
class AutoScalingWrapper:
def __init__(self, autoscaling_client):
self.autoscaling_client = autoscaling_client
def describe_group(self, group_name):
try:
response = self.autoscaling_client.describe_auto_scaling_groups(
AutoScalingGroupNames=[group_name])
except ClientError as err:
logger.error(
"Couldn't describe group %s. Here's why: %s: %s", group_name,
err.response['Error']['Code'], err.response['Error']['Message'])
raise
else:
groups = response.get('AutoScalingGroups', [])
return groups[0] if len(groups) > 0 else None
这就是我尝试使用它的方式:
from main import AutoScalingWrapper
u = AutoScalingWrapper("ASGName")
print(u.describe_group())
但这导致了一个错误:
line 4, in <module>
print(u.describe_group())
^^^^^^^^^^^^^^^^^^
TypeError: AutoScalingWrapper.describe_group() missing 1 required positional argument: 'group_name'
有人能帮我吗?
执行python代码以在AWS中使用Boto3SDK
2条答案
按热度按时间llycmphe1#
你有两个问题。
首先,
AutoScalingWrapper
需要一个客户端作为参数,而您正在传递一个字符串。我强烈建议使用类型提示来防止这种情况。其次,在
describe_group
中缺少组名,因此需要类似于查看文档以了解更多详细信息:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling/client/describe_auto_scaling_groups.html
mxg2im7a2#
我试着按你说的做了但是没有用。我已经在过去用你的例子做过了,对于两个:
这是作品,但我不想这样做,我想使用AWS的重复代码,但它没有工作,你能解释如何使用它吗?
这就是我所说的(与类和2def):https://docs.aws.amazon.com/code-library/latest/ug/python_3_auto-scaling_code_examples.html(获取群组信息)
我问它,因为我没有找到任何信息在互联网上如何:(