gpt4 book ai didi

amazon-web-services - 将数据记录到 elasticsearch 服务器

转载 作者:行者123 更新时间:2023-12-03 02:35:25 24 4
gpt4 key购买 nike

我关注了文章“使用 Amazon Rekognition 和 Amazon Athena 探索社交媒体上的图像”,一切都按预期工作。

https://aws.amazon.com/blogs/machine-learning/exploring-images-on-social-media-using-amazon-rekognition-and-amazon-athena/

我的问题是:如何将数据流式传输到 elasticsearch 服务?

我试图在函数中添加这段代码

import base64
import requests
from requests_aws4auth import AWS4Auth

host = '' # the Amazon ES domain, including https://
index = 'lambda-kine-index'
type = 'lambda-kine-type'
url = host + '/' + index + '/' + type + '/'

headers = { "Content-Type": "application/json" }

region = 'us-east-1' # e.g. us-west-1
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# edit the function
r = requests.put(url + tweet['id'], auth=awsauth, json=json.dumps(sentiment_record), headers=headers)

函数下载自:

https://s3.amazonaws.com/aws-bigdata-blog/artifacts/EyeOfCustomer/labelimage.zip

问题是请求模块不是内置的。我不知道如何在这个函数中添加它。
但我想知道在这种情况下是否有任何其他方法可以将数据添加到 elasticsearch。

最佳答案

按照评论中的建议从 botocore 导入请求不起作用。但是以下代码一旦添加到 lambda 函数就可以工作。

import urllib3
http = urllib3.PoolManager()
host_senti = 'https://search-xxx.us-east-1.es.amazonaws.com/mysentiments/senti/'

# The line to actually add an entry to elastic
http.request('POST', host_senti+str(tweet['id']), headers = {'Content-Type': 'application/json'}, body = json.dumps(sentiment_record) )

关于amazon-web-services - 将数据记录到 elasticsearch 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58992721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com