问题描述
我正在尝试通过 UpdatePackage api 更新软件包。我可以根据要求提供更多详细信息。
有效载荷
{
"PackageID": "myid","PackageDescription": "New synonym file.","CommitMessage": "Added some synonyms.","PackageSource": {
"S3BucketName": "my-backup-bucket","S3Key": "my/synonyms.txt"
}
}
在 ansible 中请求
- name: POST Request to register the snapshot repository
uri:
url: "{{ elasticsearch_url_ireland }}:/packages/update"
method: POST
body: "{{ lookup('file','roles/docker-elasticsearch-synonyms/templates/update_package.json') }}"
body_format: json
headers:
Content-Type: "application/json"
status_code: 201
register: register_request_response
我在 API 调用后收到以下响应
access_control_allow_origin: '*'
connection: close
content_length: '177'
content_type: application/json; charset=UTF-8
cookies: {}
cookies_string: ''
date: Tue,01 Jun 2021 14:35:24 GMT
elapsed: 1
json:
_id: someid
_index: packages
_primary_term: 1
_seq_no: 0
_shards:
Failed: 0
successful: 1
total: 2
_type: update
_version: 1
result: created
msg: OK (177 bytes)
redirected: true
status: 201
url: https://myhost.es.amazonaws.com:/packages/update
基本上我想通过 API 来做我使用控制台做的事情
解决方法
我们最终使用 AWS SDK 解决了这个问题。我们可以使用以下命令获得相同的功能
aws es update-package --package-id 1234567 --package-source S3BucketName=mybucket,S3Key=somefolder/synonyms.txt --region someregion