【问题标题】:Loop through a list of S3 buckets and put-bucket-lifecycle-configuration遍历 S3 存储桶列表和 put-bucket-lifecycle-configuration
【发布时间】:2020-08-05 00:12:02
【问题描述】:

这里是脚本初学者,所以请放轻松。

我正在寻找一个脚本来动态调用 AWS API put-bucket-lifecycle-configuration 并自动解析所有 200 多个存储桶的列表,因此我不需要在命令中手动更改存储桶名称。到目前为止,这是我所拥有的:

列出并解析 org 中的所有帐户

aws organizations list-accounts

列出并解析所有桶

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

put-bucket-lifecycle-configuration 命令

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
        }
    }
]

}

【问题讨论】:

    标签: amazon-web-services amazon-s3 command-line-interface


    【解决方案1】:

    您可以在每个存储桶名称和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
    

    【讨论】:

    • 如何运行这个命令?我会把它放在 bash 文件中并运行 bash 文件吗?我在运行cmder for linux命令的Windows 10机器上。
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2020-07-07
    • 2017-11-23
    • 2012-03-15
    相关资源
    最近更新 更多