aws: ошибка: операция аргумента: конфигурация жизненного цикла установки

Получение следующей ошибки для конфигурации put-bucket-lifecycle:

[root@ADM-PROD-OMNI noc-scripts]# aws s3api put-bucket-lifecycle-configuration --bucket noc-try --lifecycle-configuration  lifecycle.json
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument operation: Invalid choice, valid choices are:

abort-multipart-upload                   | complete-multipart-upload
copy-object                              | create-bucket
create-multipart-upload                  | delete-bucket
delete-bucket-cors                       | delete-bucket-lifecycle
delete-bucket-policy                     | delete-bucket-replication
delete-bucket-tagging                    | delete-bucket-website
delete-object                            | delete-objects
get-bucket-acl                           | get-bucket-cors
get-bucket-lifecycle                     | get-bucket-location
get-bucket-logging                       | get-bucket-notification
get-bucket-notification-configuration    | get-bucket-policy
get-bucket-replication                   | get-bucket-request-payment
get-bucket-tagging                       | get-bucket-versioning
get-bucket-website                       | get-object
get-object-acl                           | get-object-torrent
head-bucket                              | head-object
list-buckets                             | list-multipart-uploads
list-object-versions                     | list-objects
list-parts                               | put-bucket-acl
put-bucket-cors                          | put-bucket-lifecycle
put-bucket-logging                       | put-bucket-notification
put-bucket-notification-configuration    | put-bucket-policy
put-bucket-replication                   | put-bucket-request-payment
put-bucket-tagging                       | put-bucket-versioning
put-bucket-website                       | put-object
put-object-acl                           | restore-object
upload-part                              | upload-part-copy
wait                                     | help

Но

get-bucket-lifecycle работает, это означает, что мой aws настроен:

[root@ADM-PROD-OMNI noc-scripts]# aws s3api get-bucket-lifecycle --bucket 4sm-wrapup
RULES    clear multipart failed files           Enabled

**OR**

[root@ADM-PROD-OMNI noc-scripts]# aws s3api get-bucket-lifecycle --bucket noc-try

A client error (NoSuchLifecycleConfiguration) occurred when calling the GetBucketLifecycle operation: The lifecycle configuration does not exist

Также пробовал:

 [root@ADM-PROD-OMNI noc-scripts]# aws s3api put-bucket-lifecycle --bucket noc-try --lifecycle-configuration  lifecycle.json

    Error parsing parameter '--lifecycle-configuration': Expected: '=', received: '.' for input:
    lifecycle.json
             ^

Пожалуйста, дайте мне знать, что здесь не так?


person Ashish Karpe    schedule 10.05.2016    source источник
comment
мы можем увидеть ваш lifecycle.json?   -  person zoubida13    schedule 10.05.2016
comment
Я использовал этот docs.aws.amazon.com/AmazonS3/latest/API. /   -  person Ashish Karpe    schedule 10.05.2016
comment
@zoubida13 My lifecycle.json: ‹Конфигурация жизненного цикла› ‹Правило› ‹ID›очистить составные ошибочные файлы‹/ID› ‹Префикс›S3 Bucket/‹/Prefix› ‹Status›Enabled‹/Status› ‹AbortIncompleteMultipartUpload› ‹DaysAfterInitiation›30‹ /DaysAfterInitiation› ‹/AbortIncompleteMultipartUpload› ‹/Rule› ‹/LifecycleConfiguration›   -  person Ashish Karpe    schedule 10.05.2016


Ответы (1)


В вашем первом примере совершенно очевидно, что метод «put-bucket-lifecycle-configuration» не существует, и вместо этого вам нужно использовать «put-bucket-lifecycle», который, как вы сказали, вы также пробовали и получили другую ошибку .

Разные ошибки - это хорошо!

Новая ошибка предполагает неправильный синтаксис при вызове файла конфигурации .json и/или неправильную структуру JSON.

Вот документация по «жизненному циклу пут-бакета»: жизненный цикл пут-бакета

Вот пример вызова конфигурационного файла .json:

aws s3api put-bucket-lifecycle --bucket my-bucket --lifecycle-configuration file://lifecycle.json

Вот пример файла JSON:

{
  "Rules": [
    {
      "ID": "Move to Glacier after sixty days (objects in logs/2015/)",
      "Prefix": "logs/2015/",
      "Status": "Enabled",
      "Transition": {
        "Days": 60,
        "StorageClass": "GLACIER"
      }
    },
    {
      "Expiration": {
        "Date": "2016-01-01T00:00:00.000Z"
      },
      "ID": "Delete 2014 logs in 2016.",
      "Prefix": "logs/2014/",
      "Status": "Enabled"
    }
  ]
}

НИЖЕ ФАЙЛ JSON ПРОВЕРЕН И РАБОТАЕТ, КАК ПОКАЗАНО НА СЛЕДУЮЩИХ СКРИНШОТАХ:

{
    "Rules": [
        {
          "ID": "multipart-upload-rule",
          "Prefix": "noc-try",
          "Status": "Enabled",
          "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 3 }
        }
    ]
}

КОМАНДА CLI ДЛЯ СОЗДАНИЯ КОНФИГУРАЦИИ ЖИЗНЕННОГО ЦИКЛА С ИСПОЛЬЗОВАНИЕМ ВЫШЕУКАЗАННОГО ФАЙЛА JSON:

aws s3api put-bucket-lifecycle --bucket testbucket1478921 --lifecycle-configuration file://c:/tmp/test.json

введите описание изображения здесьвведите здесь описание изображения< img src="https://i.stack.imgur.com/WeKNe.png" alt="введите здесь описание изображения">

person Jim P.    schedule 10.05.2016
comment
Я не хочу переезжать в Глейшер! Я хочу, чтобы он очищал многокомпонентные ошибочные файлы, например: «Конфигурация жизненного цикла» ‹ Правило › ‹ ID › очистить многокомпонентные ошибочные файлы ‹/ID › ‹ Префикс › Сегменты S3/‹/Префикс › ‹ Статус › Включено‹/Статус › ‹ AbortIncompleteMultipartUpload› ‹ DaysAfterInitiation ›30‹/DaysAfterInitiation› ‹/AbortIncompleteMultipartUpload› ‹/Rule› ‹/LifecycleConfiguration› - person Ashish Karpe; 11.05.2016
comment
[root@ADM-PROD-OMNI noc-scripts]# aws s3api put-bucket-lifecycle --bucket noc-try --lifecycle-configuration file://lifecycle.json подстрока не найдена Получил эту ошибку для этого файла jason: ‹ LifecycleConfiguration› ‹Правило› ‹ID›clear-multipart-failed-files‹/ID› ‹Префикс›целая корзина/‹/Префикс› ‹Статус›Включено‹/Статус› ‹AbortIncompleteMultipartUpload› ‹DaysAfterInitiation›3‹/DaysAfterInitiation› ‹/ AbortIncompleteMultipartUpload› ‹/Rule› ‹/LifecycleConfiguration› - person Ashish Karpe; 11.05.2016
comment
Получение этой ошибки: [root@ADM-PROD-OMNI noc-scripts]# aws s3api put-bucket-lifecycle --bucket noc-try --lifecycle-configuration file://lifecycle1.json Ошибка проверки параметра: неизвестный параметр в LifecycleConfiguration .Rules[0]: AbortIncompleteMultipartUpload, должен быть одним из следующих значений: Срок действия, ID, Префикс, Статус, Переход, NoncurrentVersionTransition, NoncurrentVersionExpiration. - person Ashish Karpe; 11.05.2016
comment
Для следующего файла json: [root@ADM-PROD-OMNI noc-scripts]# cat lifecycle1.json { Правила: [ { ID: clear-multipart-failed-files, Prefix: noc-try, Status: Enabled, }, AbortIncompleteMultipartUpload : { DaysAfterInitiation: 30 } } ] } - person Ashish Karpe; 11.05.2016
comment
Как указано в исходном ответе, у вас было 2 проблемы с вашей попыткой. Вы использовали неправильный метод из командной строки CLI, и ваш файл JSON был неправильно отформатирован. Исходный ответ был обновлен, чтобы включить правильный синтаксис команды CLI И правильный формат JSON. Как видно из скриншотов, он был протестирован и работает! - person Jim P.; 11.05.2016
comment
Извините, но получаю ту же ошибку: [root@ADM-PROD-OMNI noc-scripts]# aws s3api put-bucket-lifecycle --bucket noc-try --lifecycle-configuration file://lifecycle.json Ошибка проверки параметра: неизвестный параметр в LifecycleConfiguration.Rules[0]: AbortIncompleteMultipartUpload, должно быть одно из следующих значений: Expiration, ID, Prefix, Status, Transition, NoncurrentVersionTransition, NoncurrentVersionExpiration. - person Ashish Karpe; 13.05.2016
comment
используемый файл json ur: [root@ADM-PROD-OMNI noc-scripts]# cat lifecycle.json { Правила: [ { ID: multipart-upload-rule, Prefix: noc-try, Status: Enabled, AbortIncompleteMultipartUpload: { DaysAfterInitiation: 3 } } ] } Все та же ошибка - person Ashish Karpe; 13.05.2016