From 556f14aa0a2c86acbbbe8d720c05e566d00a49d9 Mon Sep 17 00:00:00 2001 From: vj Date: Mon, 16 Sep 2024 13:19:24 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20use=20paginator=20for=20s3=20res?= =?UTF-8?q?ource,=20fix=20region=20error=20on=20lambda=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- providers/aws/resources/aws_lambda.go | 13 +++++++------ providers/aws/resources/aws_s3.go | 18 +++++++++++++----- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/providers/aws/resources/aws_lambda.go b/providers/aws/resources/aws_lambda.go index 6e89998878..bbb365dbf0 100644 --- a/providers/aws/resources/aws_lambda.go +++ b/providers/aws/resources/aws_lambda.go @@ -137,14 +137,15 @@ func initAwsLambdaFunction(runtime *plugin.Runtime, args map[string]*llx.RawData name := args["name"] region := args["region"] - if name == nil { - return nil, nil, errors.New("name required to fetch lambda function") - } - if region == nil { - return nil, nil, errors.New("region required to fetch lambda function") - } + var arnVal string if args["arn"] == nil { + if name == nil { + return nil, nil, errors.New("name required to fetch lambda function") + } + if region == nil { + return nil, nil, errors.New("region required to fetch lambda function") + } arnVal = getLambdaArn(name.String(), region.String(), "") if arnVal == "" { return nil, nil, errors.New("arn required to fetch lambda function") diff --git a/providers/aws/resources/aws_s3.go b/providers/aws/resources/aws_s3.go index 44cb6c8a62..13e1fc0186 100644 --- a/providers/aws/resources/aws_s3.go +++ b/providers/aws/resources/aws_s3.go @@ -60,14 +60,22 @@ func (a *mqlAwsS3) buckets() ([]interface{}, error) { svc := conn.S3("") ctx := context.Background() - buckets, err := svc.ListBuckets(ctx, &s3.ListBucketsInput{}) - if err != nil { - return nil, err + totalBuckets := make([]s3types.Bucket, 0) + params := &s3.ListBucketsInput{} + paginator := s3.NewListBucketsPaginator(svc, params, func(o *s3.ListBucketsPaginatorOptions) { + o.Limit = 100 + }) + for paginator.HasMorePages() { + output, err := paginator.NextPage(context.TODO()) + if err != nil { + return nil, err + } + totalBuckets = append(totalBuckets, output.Buckets...) } res := []interface{}{} - for i := range buckets.Buckets { - bucket := buckets.Buckets[i] + for i := range totalBuckets { + bucket := totalBuckets[i] location, err := svc.GetBucketLocation(ctx, &s3.GetBucketLocationInput{ Bucket: bucket.Name,