我有一个简单的python
脚本正在扫描DynamoDB
表。该表包含我拥有的所有帐户的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
答案 0 :(得分:4)
以下是使用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。