AWS OpenSearch Service ã§ã¹ãããã·ã§ãããæ°è¦ã«ç»é²ããå ´åãKibana ã® Dev Tools ããã§ã¯å®è¡ã§ããªãã
https://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/managedomains-snapshots.html#managedomains-snapshot-register
ä¸è¨ããã¥ã¡ã³ãã«è¨è¼ã® Python ãµã³ãã«ã³ã¼ãã使ã£ã¦ç»é²ãããã¨ã§è§£æ±ºããã
import boto3 import requests from requests_aws4auth import AWS4Auth host = '' # domain endpoint with trailing / region = '' # 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) # Register repository path = '_snapshot/my-snapshot-repo-name' # the OpenSearch API endpoint url = host + path payload = { "type": "s3", "settings": { "bucket": "s3-bucket-name", "region": "us-west-1", "role_arn": "arn:aws:iam::123456789012:role/snapshot-role" } } headers = {"Content-Type": "application/json"} r = requests.put(url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text)
ãµã³ãã«ã³ã¼ããèªåã®ç°å¢ç¨ã«ä¿®æ£ããããèªåã®ãã¼ã«ã«ã§å®æ½ãã¦ãè¯ãããä»å㯠CloudShell ã§ãã£ã¦ã¿ãã
ã³ãã³ãã¯ä»¥ä¸ã®éãã
$ vi register-repo.py # ãµã³ãã«ã³ã¼ãé ç½® $ sudo pip3 install boto3 # boto3 ã¤ã³ã¹ãã¼ã« $ sudo pip3 install requests_aws4auth # requests_aws4auth ã¤ã³ã¹ãã¼ã« $ python3 register-repo.py # å®è¡ 200 {"acknowledged":true}