我有一个扫描DynamoDB
表的简单python
脚本。该表包含我拥有的所有帐户的ARN。有一个数据类型字符串的主键"ARNs“。当我扫描表时,我只想得到返回的ARN字符串。我在boto3
文档中找不到任何可以实现这一点的东西。下面是我的代码、返回的输出和所需的输出。
CODE:
import boto3
dynamo = boto3.client('dynamodb')
# Scans Dynamo for all account role ARNs
def get_arns():
response = dynamo.scan(TableName='AllAccountARNs')
print(response)
get_arns()
OUTPUT:
{'ARNs': {'S': 'arn:aws:iam::xxxxxxx:role/custom_role'}},
{'ARNs': {'S': 'arn:aws:iam::yyyyyyy:role/custom_role'}},
{'ARNs': {'S': 'arn:aws:iam::zzzzzzz:role/custom_role'}}
DESIRED OUPUT:
arn:aws:iam::xxxxxxx:role/custom_role
arn:aws:iam::yyyyyyy:role/custom_role
arn:aws:iam::zzzzzzz:role/custom_role
发布于 2018-05-30 02:23:31
以下是如何使用boto3 DynamoDB Client执行此操作的示例
import boto3
ddb = boto3.client('dynamodb')
rsp = ddb.scan(TableName='AllAccountARNs')
for item in rsp['Items']:
print(item['ARNs']['S'])
这是同样的事情,但是使用boto3 DynamoDB Table Resource
import boto3
dynamodb = boto3.resource('dynamodb')
tbl = dynamodb.Table('AllAccountARNs')
rsp = tbl.scan()
for item in rsp['Items']:
print(item['ARNs'])
请注意,这些示例并不处理大型结果集。如果响应中存在LastEvaluatedKey,则需要对结果集进行分页。请参阅boto3文档。
有关客户端与资源的更多信息,请参阅here。
https://stackoverflow.com/questions/50590040
复制相似问题