为了账号安全,请及时绑定邮箱和手机立即绑定

如何添加所有资源 arn?Lambda Golang 列表标签

如何添加所有资源 arn?Lambda Golang 列表标签

Go
大话西游666 2023-03-15 15:01:09
我试图列出我的 lambda 函数的所有标签,很费力,如果有人知道,请帮助我。func main() {    svc := lambda.New(session.New())    input := &lambda.ListTagsInput{        Resource: aws.String("arn:aws:lambda:us-east-1:657907747545:function-function-name"),    我希望列出我的 lambda 函数的所有标签 arn
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您可以使用以下代码:


package main


import (

    "context"

    awsutils "github.com/alessiosavi/GoGPUtils/aws"

    "github.com/aws/aws-sdk-go-v2/aws"

    "github.com/aws/aws-sdk-go-v2/service/lambda"

    "os"

    "sync"

)


var lambdaClient *lambda.Client = nil

var once sync.Once


func init() {

    once.Do(func() {

        cfg, err := awsutils.New()

        if err != nil {

            panic(err)

        }

        lambdaClient = lambda.New(lambda.Options{Credentials: cfg.Credentials, Region: cfg.Region})

    })

}


func ListLambdas() ([]string, error) {

    f, err := lambdaClient.ListFunctions(context.Background(), &lambda.ListFunctionsInput{})


    if err != nil {

        return nil, err

    }


    var functions = make([]string, len(f.Functions))

    for i, functionName := range f.Functions {

        functions[i] = *functionName.FunctionName

    }


    continuationToken := f.NextMarker

    for continuationToken != nil {

        f, err = lambdaClient.ListFunctions(context.Background(), &lambda.ListFunctionsInput{Marker: continuationToken})

        if err != nil {

            return nil, err

        }

        continuationToken = f.NextMarker

        for _, functionName := range f.Functions {

            functions = append(functions, *functionName.FunctionName)

        }

    }

    return functions, nil

}


func DescribeLambda(lambdaName string) (*lambda.GetFunctionOutput, error) {

    function, err := lambdaClient.GetFunction(context.Background(), &lambda.GetFunctionInput{FunctionName: aws.String(lambdaName)})

    if err != nil {

        return nil, err

    }

    return function, nil

}


func ListTags(lambdaARN string) (*lambda.ListTagsOutput, error) {

    return lambdaClient.ListTags(context.Background(), &lambda.ListTagsInput{

        Resource: aws.String(lambdaARN),

    })

}


然后您可以使用该ListLambdas方法列出所有 lambda。之后,您可以迭代返回的切片并调用该DescribeLambda方法以获得lambdaARN,然后您可以调用ListTags.


查看完整回答
反对 回复 2023-03-15
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信