【发布时间】:2019-12-20 23:48:25
【问题描述】:
我想在 DynamoDB 中存储 Elasticsearch 域的标签列表,但遇到了一些错误。
我正在使用 list_tags() 函数获取标签列表: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/es.html#ElasticsearchService.Client.list_tags
response = client.list_tags(
ARN='string'
)
它返回:
{
'TagList': [
{
'Key': 'string',
'Value': 'string'
},
]
}
这是他们在文档中所说的: 响应结构
(字典) -- ListTags 操作的结果。包含所有请求的 Elasticsearch 域的标签。 标记列表(列表)-- 请求的 Elasticsearch 域的标签列表。 (字典)—— 为资源标签指定一个键值对。
现在我尝试使用各种方式在 DynamoDB 中插入列表,但我总是遇到错误:
':TagList': {
'M': response_list_tags['TagList']
},
参数 ExpressionAttributeValues 的类型无效。:TagList.M, value: [{'Key': 'Automation', 'Value': 'None'}, {'Key': 'Owner', 'Value': 'owner '}, {'Key': 'BU', 'Value': 'DS'}, {'Key': 'Support', 'Value': 'teamA'}, {'Key': 'Note', 'Value' ': ''}, {'Key': 'Environment', 'Value': 'dev'}, {'Key': 'Creator', 'Value': ''}, {'Key': 'SubProject', 'Value': ''}, {'Key': 'DateTimeTag', 'Value': 'nodef'}, {'Key': 'ApplicationCode', 'Value': ''}, {'Key': '批评', 'Value': '3'}, {'Key': 'Name', 'Value': 'dev'}], 类型: , 有效类型: : ParamValidationError
尝试使用 L 而不是 M 并得到了这个:
ExpressionAttributeValues 中的未知参数.:TagList.L[11]: "Value", 必须是以下之一:S, N, B, SS, NS, BS, M, L, NULL, BOOL: ParamValidationError
【问题讨论】:
标签: python amazon-web-services elasticsearch amazon-dynamodb