如何在aws中获取创建日期小于特定值的dynamodb表列表
how to get a list of dynamo db tables in aws that have a creationDate less than a certain value
我希望使用 aws cli 命令,它将 return 我的 aws 帐户中的 dynamodb table 列表,其中 CreationDateTime 小于特定值。 CreationDateTime 是用 describe-table 命令显示的 属性,但 list-tables 命令仅 returns table 的名称。有什么办法可以使用查询来根据相应的 CreationDateTime 过滤由 list-table 编辑的名称 return?
否 - 如您所述,ListTables
仅列出 table 的 姓名,并且没有请求为每个 table,更不用说过滤这样的信息了。您需要在每个 table 上使用 ListTables
,然后使用 DescribeTable
。您可以 运行 所有这些 DescribeTable
请求并行进行,使整个过程更快(尽管有一个实际的障碍 - 要并行执行,您需要打开一堆连接到服务器)。
如前所述,答案是否定的,AWS CLI 无法在一个查询中执行您想要的操作。
您需要求助于 shell 脚本来链接必要的 aws
命令,或者,
如果您愿意放弃它必须是 AWS CLI 的硬性要求,另一种解决方案(并且可能比一遍又一遍地分叉 aws
更快)是使用 5 行 python 脚本来得到你想要的结果。您仍然可以从命令行 运行 执行此操作,但不会专门针对 AWS CLI。
只需执行适合您特定选择标准的时间算法。
#!/usr/bin/env python3
import boto3
from datetime import datetime, timedelta, timezone
ddb = boto3.resource('dynamodb')
for t in sorted(filter(lambda table: datetime.now(timezone.utc) - table.creation_date_time < timedelta(days=90), ddb.tables.all()), key=lambda table: table.creation_date_time):
print(f"{t.name}, {str(t.creation_date_time)}") # tables created in the last 90 days
我希望使用 aws cli 命令,它将 return 我的 aws 帐户中的 dynamodb table 列表,其中 CreationDateTime 小于特定值。 CreationDateTime 是用 describe-table 命令显示的 属性,但 list-tables 命令仅 returns table 的名称。有什么办法可以使用查询来根据相应的 CreationDateTime 过滤由 list-table 编辑的名称 return?
否 - 如您所述,ListTables
仅列出 table 的 姓名,并且没有请求为每个 table,更不用说过滤这样的信息了。您需要在每个 table 上使用 ListTables
,然后使用 DescribeTable
。您可以 运行 所有这些 DescribeTable
请求并行进行,使整个过程更快(尽管有一个实际的障碍 - 要并行执行,您需要打开一堆连接到服务器)。
如前所述,答案是否定的,AWS CLI 无法在一个查询中执行您想要的操作。
您需要求助于 shell 脚本来链接必要的 aws
命令,或者,
如果您愿意放弃它必须是 AWS CLI 的硬性要求,另一种解决方案(并且可能比一遍又一遍地分叉 aws
更快)是使用 5 行 python 脚本来得到你想要的结果。您仍然可以从命令行 运行 执行此操作,但不会专门针对 AWS CLI。
只需执行适合您特定选择标准的时间算法。
#!/usr/bin/env python3
import boto3
from datetime import datetime, timedelta, timezone
ddb = boto3.resource('dynamodb')
for t in sorted(filter(lambda table: datetime.now(timezone.utc) - table.creation_date_time < timedelta(days=90), ddb.tables.all()), key=lambda table: table.creation_date_time):
print(f"{t.name}, {str(t.creation_date_time)}") # tables created in the last 90 days