Elasticsearch에 S3 리포지토리를 등록하는 방법

Elasticsearch에 S3 리포지토리를 등록하는 방법

2022-10-19 last update

4 minutes reading python aws boto devops
안녕하세요, AWS Opensearch용 스냅샷 리포지토리로 AWS S3 버킷을 등록하도록 설계한 작은 파이썬 함수와 공유하고 싶습니다.

import boto3
import requests
from requests_aws4auth import AWS4Auth

region = 'eu-central-1'
service = 'es'
role_arn = "arn:aws:iam::<accountid>:role/EsSnapshotRole"
host = '<elasticsearch Endpoint>' 
path = '/_snapshot/moo-es-snapshots'
url = host + path

credentials = boto3.Session(profile_name="moo-stag-es").get_credentials()

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

#Register repository

payload = {
  "type": "s3",
  "settings": {
    "bucket": "<bucket-name>",
    "region": region,
    "role_arn": ""
  }
}

headers = {"Content-Type": "application/json"}
try:
   r = requests.put(url, auth=awsauth, json=payload,        headers=headers)

   print(r.status_code)
   print(r.text)

except Exception as e:
        print(e) 


튜토리얼이 마음에 드셨으면 좋겠습니다. 추천을 해주시면 감사하겠습니다! 다음 튜토리얼을 놓치지 않으려면 myNewletter 를 구독할 수도 있습니다.

미디어 속성



멋진 디자인을 해주신 Clark Tibbs에게 감사의 인사를 전합니다 [사진]