0

我正在尝试遍历特定帐户中的所有存储桶并将所有存储桶名称添加到列表中,以便我可以应用存储桶策略并将日志记录到存储在列表中的那些存储桶中。

这是我的代码:

import json
import boto3

def lambda_handler(event, context):
    # TODO implement

    # print("hanlder:event")
    # print(event)
    # bucketDump()
    setBucketPolicy(bucketDump())


def bucketDump():
    ##This program lists all exsisting buckets within an aws account (Tommy's Personal Account)
    s3 = boto3.client('s3')
    response = s3.list_buckets()

    # Output the bucket names
    # print('Existing buckets:')

    for bucket in response['Buckets']:
        if bucket is not None:
            buckets = []
            value = bucket["Name"]
            buckets.append(value)
           
        else: 
            break
    return buckets
            

    ##setting a bucket policy
def setBucketPolicy(buckets):
    print(buckets)

我的问题是它只返回最后一个桶,所以当我调用该函数时,它只打印一个桶。但是,如果我拿走“返回”并仅打印print(bucket['Name']) ,我会得到所有存储桶的打印列表,但显然这在函数中不可用。预先感谢您的帮助!!

4

1 回答 1

0

我需要在 for 循环之外声明 buckets = []

于 2020-09-01T19:38:44.187 回答