boto3 为 kms list_aliases() 命令设置标记
boto3 set marker for kms list_aliases() command
我使用的一些 AWS 账户有很多 KMS 密钥,这些密钥都绑定了别名。
我的问题是,如果 list_aliases() 命令 returns 的结果太多,结果将被截断,并且如果搜索的值超出截断点,脚本将失败。
我尝试通过此方法返回 200 个结果,但没有成功:
alias_list = (kms_client.list_aliases(Marker='200')
botocore.errorfactory.InvalidMarkerException: An error occurred (InvalidMarkerException) when calling the ListAliases operation: Could not deserialize marker '200'
如何为 list_aliases() 命令设置标记?
首先,根据文档 list_aliases returns 1 到 100 个结果。这是使用 Limit 而非 Marker 设置的。
示例:
alias_list = (kms_client.list_aliases(Limit=100)
其次,超过前 100 个的结果需要使用第一次调用 list_aliases()
返回的标记值。下面是一个简单的示例,说明如何获取标记并使用它来获取接下来的 1-100 个值。
免责声明,这段代码实际上并没有对检索到的别名做任何事情,我也没有测试过它。
def get_kms_alias(kms_client, limit=100, marker=""):
if marker:
alias_request = (kms_client.list_aliases(Limit=limit, Marker=marker))
else:
alias_request = (kms_client.list_aliases(Limit=limit))
print(alias_request["Aliases"])
alias_truncated = alias_request["Truncated"]
if truncated in "True":
marker = alias_request["NextMarker"]
get_kms_alias(kms_client, limit, marker)
return None
我使用的一些 AWS 账户有很多 KMS 密钥,这些密钥都绑定了别名。
我的问题是,如果 list_aliases() 命令 returns 的结果太多,结果将被截断,并且如果搜索的值超出截断点,脚本将失败。
我尝试通过此方法返回 200 个结果,但没有成功:
alias_list = (kms_client.list_aliases(Marker='200')
botocore.errorfactory.InvalidMarkerException: An error occurred (InvalidMarkerException) when calling the ListAliases operation: Could not deserialize marker '200'
如何为 list_aliases() 命令设置标记?
首先,根据文档 list_aliases returns 1 到 100 个结果。这是使用 Limit 而非 Marker 设置的。
示例:
alias_list = (kms_client.list_aliases(Limit=100)
其次,超过前 100 个的结果需要使用第一次调用 list_aliases()
返回的标记值。下面是一个简单的示例,说明如何获取标记并使用它来获取接下来的 1-100 个值。
免责声明,这段代码实际上并没有对检索到的别名做任何事情,我也没有测试过它。
def get_kms_alias(kms_client, limit=100, marker=""):
if marker:
alias_request = (kms_client.list_aliases(Limit=limit, Marker=marker))
else:
alias_request = (kms_client.list_aliases(Limit=limit))
print(alias_request["Aliases"])
alias_truncated = alias_request["Truncated"]
if truncated in "True":
marker = alias_request["NextMarker"]
get_kms_alias(kms_client, limit, marker)
return None