Boto3:describe_auto_scaling_groups 在输入中给出未知参数:“过滤器”错误
Posted
技术标签:
【中文标题】Boto3:describe_auto_scaling_groups 在输入中给出未知参数:“过滤器”错误【英文标题】:Boto3:describe_auto_scaling_groups giving Unknown parameter in input: "Filters" error 【发布时间】:2021-12-27 10:38:14 【问题描述】:我正在尝试根据标签值列出一组过滤的 ASG,如下所示:
client = boto3.client('autoscaling',region)
asg=client.describe_auto_scaling_groups(
Filters=[
"Name": "tag:ecs_cluster", "Values": ["testCluster"],
"Name": "tag:cluster-name", "Values": ["ciCluster"]
])
这与 Boto3 documentation 内联,但在执行时会出现以下错误:
Parameter validation failed: Unknown parameter in input: "Filters", must be one of: AutoScalingGroupNames, NextToken, MaxRecords
如何在不提供任何 AutoScalingGroupNames 的情况下获得过滤列表?
【问题讨论】:
你用的是什么版本的boto3? 这是通过 AWS lambda 运行的 lambda 中的 boto3 不完整。如果您使用的是 python 3.9 lambda 并且仍然无法正常工作,您必须捆绑自己的 boto3 吗? 如果我不传递 Filter 参数而只运行 client.describe_auto_scaling_groups() 它确实返回值。所以这并不是说该方法不存在。仍然无法理解为什么还需要我上传二进制文件。无论如何,它在后端的 Amazon Linux 2 机器上运行。 这确实是一个错误,感谢您将我推向正确的方向。我已经用 AWS 记录了它,一旦它解决了就会更新线程。 【参考方案1】:对于遇到此问题的任何人:
“过滤器”选项是最近推出的一项新功能。这目前适用于最新的 AWS CLI,我也使用最新版本进行了测试,我可以确认它可以正常工作。
工作版本:
aws --version
aws-cli/2.4.0 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off
其他服务仍在更新中,没有关于何时可在所有平台上使用的预计时间。在更新 Lambda 时,您可以使用当前版本的 AWS CLI。
【讨论】:
【参考方案2】:好吧,我遇到了与您提到的完全相同的错误,在本地脚本中工作正常但在 lambda 中却没有,但我想说“过滤器”无法正常工作的真正罪魁祸首是 lambda 上的 botocore 版本。
这是在本地脚本上运行良好但在 Lambda 上无法运行的代码部分:
response = asg.describe_auto_scaling_groups(Filters=['Name': 'tag:Patch Group','Values': ['asg',],],MaxRecords=100)
我确实打印出了 Lambda 的 boto3 和 botocore 版本:
print(boto3.__version__)
print(botocore.__version__)
我确实在本地安装了相同的版本,并且能够在本地重现相同的 lambda 错误
pip install boto3==1.18.55
pip3 install botocore==1.21.55
在this article 之后,我怀疑是否应该上传自己的 python + botocore + boto3 层,或者我是否应该处理代码以使其与 Lambda 的默认 boto3 + botocore 版本一起使用。
顺便说一下,这些是可以使用的版本:
aws-cli/2.3.6 Python/3.8.8 Linux/5.13.0-27-generic exe/x86_64.ubuntu.20 提示/关闭 Python 3.8.10 boto3 版本:1.20.26 botocore 版本:1.21.65这个带有 Lambda 运行时的 link 也很有帮助。
最好的问候
【讨论】:
以上是关于Boto3:describe_auto_scaling_groups 在输入中给出未知参数:“过滤器”错误的主要内容,如果未能解决你的问题,请参考以下文章