UpdatePackage API Amazon Elastic Search 未按预期工作

问题描述

我正在尝试通过 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 来做我使用控制台做的事情

enter image description here

解决方法

我们最终使用 AWS SDK 解决了这个问题。我们可以使用以下命令获得相同的功能

aws es update-package --package-id 1234567 --package-source S3BucketName=mybucket,S3Key=somefolder/synonyms.txt --region someregion

AWS Docs

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...