私はしばらくの間苦労して同様のことをしました。現在のところ、boto3ライブラリは署名されたesリクエストの作成をサポートしていませんが、私はraised an issueが機能要求になっています。
は、ここで私は私のSTSセッションの資格を取得するには、上記とboto3言及DavidMuller's libraryを使用して、その間に何をやったかです:
import boto3
from aws_requests_auth.aws_auth import AWSRequestsAuth
from elasticsearch import Elasticsearch, RequestsHttpConnection
session = boto3.session.Session()
credentials = session.get_credentials().get_frozen_credentials()
es_host = 'search-my-es-domain.eu-west-1.es.amazonaws.com'
awsauth = AWSRequestsAuth(
aws_access_key=credentials.access_key,
aws_secret_access_key=credentials.secret_key,
aws_token=credentials.token,
aws_host=es_host,
aws_region=session.region_name,
aws_service='es'
)
# use the requests connection_class and pass in our custom auth class
es = Elasticsearch(
hosts=[{'host': es_host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
print(es.info())
・ホープこれは誰かいくつかの時間を節約できます。
掘り出し物がありました。 'generate_presigned_url'が行く方法だとは思わないでください。私は私に利用可能な操作は、高度なES操作がドキュメントに記載されていると思う:http://boto3.readthedocs.io/en/latest/reference/services/es.html#ElasticsearchService.Client.generate_presigned_url – Alec