为什么AWS Python SDK IAM Client get_account_authorization_detai



我使用boto3文档(https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.get_account_authorization_details)中提供的代码和以下代码:

import boto3
import boto3.session
my_session = boto3.session.Session(profile_name='US-Prod')
client = my_session.client('iam')
response = client.get_account_authorization_details(
Filter=[
'User'|'Role'|'Group'|'LocalManagedPolicy'|'AWSManagedPolicy',
],
MaxItems=123,
Marker='string'
)

产生如下错误:

Exception has occurred: TypeError
unsupported operand type(s) for |: 'str' and 'str'
File "C:Usersbg216063DocumentsAWSsre-scriptsexcelmkIAMxls.py", line 9, in <module>
'User'|'Role'|'Group'|'LocalManagedPolicy'|'AWSManagedPolicy',

当我完成了文档示例的复制和粘贴后,为什么不支持这些类型?

文档中的管道符号表示"或"。换句话说,您可以指定'User''Role',等等。

你所链接的文档也声明:

此参数的格式为逗号分隔(如果有多个)字符串列表。列表中的每个字符串值必须是有效值如下:

要使您的代码与文档一致(并使其成为语法正确的Python代码),它看起来像这样:

response = client.get_account_authorization_details(
Filter=[
'User','Role','Group','LocalManagedPolicy','AWSManagedPolicy'
],
MaxItems=123,
Marker='string'
)

虽然在这一点上,我认为你可以删除过滤器,因为你请求所有类型,所以你并没有真正过滤结果。

最新更新