L oop через список S3-контейнеров и put-bucket-lifecycle-configuration - PullRequest
0 голосов
/ 22 апреля 2020

Начинаю со сценариев здесь, так что, пожалуйста, успокойся со мной.

Я ищу сценарий для динамического вызова конфигурации AWS API put-bucket-lifecycle-configuration и автоматического анализа списка всех 200+ сегментов, поэтому мне не нужно вручную менять интервал имена в команде. Вот что у меня получилось:

Вывести и проанализировать все учетные записи в org

aws organizations list-accounts

Составить список и проанализировать все сегменты

aws s3api list-buckets --query "Buckets[].Name"

Команда put-bucket-lifecycle -конфигурация

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

Жизненный цикл. json

{
"Rules": [
    {
        "Expiration": {
            "Days": 3650
        },
        "ID": "ExampleRule",
        "Filter": {
            "Prefix": ""
        },
        "Status": "Enabled",
        "Transitions": [
            {
                "Days": 30,
                "StorageClass": "STANDARD_IA"
            },
            {
                "Days": 90,
                "StorageClass": "GLACIER"
            },
            {
                "Days": 180,
                "StorageClass": "DEEP_ARCHIVE"
            }
        ],
        "NoncurrentVersionTransitions": [
            {
                "NoncurrentDays": 30,
                "StorageClass": "STANDARD_IA"
            },
            {
                "NoncurrentDays": 90,
                "StorageClass": "GLACIER"
            },
            {
                "NoncurrentDays": 180,
                "StorageClass": "DEEP_ARCHIVE"
            }
        ],
        "NoncurrentVersionExpiration": {
            "NoncurrentDays": 3650
        },
        "AbortIncompleteMultipartUpload": {
            "DaysAfterInitiation": 7
        }
    }
]

}

1 Ответ

0 голосов
/ 22 апреля 2020

Вы можете l oop над именами сегментов и put-bucket-lifecycle-configuration для каждого. Например:

for bucket in $(aws s3api list-buckets --query "Buckets[].Name" --output text); do

    aws s3api put-bucket-lifecycle-configuration --bucket ${bucket} --lifecycle-configuration file://lifecycle.json

done
...