Почтальон AWS S3 запрос моментального снимка Elasticsearch - PullRequest
0 голосов
/ 07 июня 2018

Здравствуйте! Мне нужна помощь с отправкой запроса PUT на мой ElasticSearch на AWS для создания моментального снимка в корзине S3 с помощью POSTMAN.

Я создал корзину S3 с именем cb-Поиск-эс-подпорку.Я создал роль и политику для S3 (см. Этот пост о предпринятых мною шагах) .

REQUEST URL https://myelasticsearchendpoint.eu -west-1.es.amazonaws.com /

СПОСОБ ЗАПРОСА : PUT

ТЕЛО : RAW /json

{
 "type": "s3",
    "settings": {
        "bucket": "cb-search-es-backup",  // my bucketname
        "region": "eu-west-1", // region
        "role_arn": "arn:aws:iam::12345676890:role/Role_ES_TO_S3" // my role arn
   }
 }

enter image description here

Я также попробовал тип авторизации: «Подпись AWS», с заполненным доступом и секретным ключом.

1 Ответ

0 голосов
/ 07 июня 2018

Похоже, что вы не передаете учетные данные AWS с этим запросом.

Подробное руководство по созданию запроса Postman с аутентификацией AWS здесь: Использование Postman для вызова API .

Ваше окно почтальона может выглядеть следующим образом:

AWS Postman auth

Чтобы сделать то же самое с python, пожалуйста, ознакомьтесь с разделом Sample python client эта страница документации , обратите внимание, что объект AWS4Auth создан и передан как auth параметр requests.put():

credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Register repository

path = '_snapshot/my-snapshot-repo' # the Elasticsearch API endpoint
url = host + path

payload = {
  ...
}

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

r = requests.put(url, auth=awsauth, json=payload, headers=headers)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...