Boto3:describe_auto_scaling_groups 在输入中给出未知参数:"Filters" 错误
Boto3:describe_auto_scaling_groups giving Unknown parameter in input: "Filters" error
我正在尝试列出一组基于标记值的已过滤 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 的情况下获得过滤列表?
对于遇到此问题的任何人:
“过滤器”选项是最近推出的一项新功能。这目前适用于最新的 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。
好吧,我遇到了与您提到的完全相同的错误,在本地脚本中工作正常但在 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 prompt/off
- Python 3.8.10
- boto3 版本:1.20.26
- botocore 版本:1.21.65
Lambda 运行时的 link 也很有帮助。
此致
我正在尝试列出一组基于标记值的已过滤 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 的情况下获得过滤列表?
对于遇到此问题的任何人:
“过滤器”选项是最近推出的一项新功能。这目前适用于最新的 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。
好吧,我遇到了与您提到的完全相同的错误,在本地脚本中工作正常但在 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 prompt/off
- Python 3.8.10
- boto3 版本:1.20.26
- botocore 版本:1.21.65
Lambda 运行时的 link 也很有帮助。
此致