如何解决从字段中获取正确的值
我在 elasticsearch 上遇到了问题。 我终于可以发布到elasticsearch,但数据是用“S”值而不是实际值写入的。
当我查看我的 cloudwatch 日志时,我看到了这一点。
{
"Records":[
{
"eventID":"d5d4955d706dd71348760a482f33735f","eventName":"INSERT","eventVersion":"1.1","eventSource":"aws:dynamodb","awsRegion":"us-east-1","dynamodb":{
"ApproximateCreationDateTime":1613816980.0,"Keys":{
"uuid":{
"S":"c140a68de65301465cd1cd3d97cc4107"
}
},"NewImage":{
"Smsstatus":{
"S":"received"
},"streetname":{
"S":"King tut"
},"timestampMessage":{
"S":"Sat Feb 20 2021 10:29:39 GMT+0000 (Coordinated Universal Time)"
}
}
}
}
]
}
这是我正在使用的代码。
import os
import boto3
import requests
from requests_aws4auth import AWS4Auth
es_host = os.environ['ES_HOST']
es_index = "Metadata"
es_type = "episodes"
url = es_host + '/' + es_index + '/' + es_type + '/'
region = 'us-east-1'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key,credentials.secret_key,region,service,session_token=credentials.token)
def lambda_handler(event,context):
print(event)
for record in event['Records']:
id = str(record['dynamodb']['Keys']['uuid']['S'])
if record['eventName'] == 'REMOVE':
res = requests.delete(url + id,auth=awsauth)
else:
document = record['dynamodb']['NewImage']
res = requests.put(url + id,auth=awsauth,json=document,headers={"Content-Type": "application/json"})
我确定这是需要解决的小问题,但如果有人可以提供帮助,我不确定如何取悦。谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。