You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加所有资源ARN?Golang Lambda函数标签列表获取求助

问题

我正尝试列出我的Lambda函数的所有标签对应的ARN,过程中遇到诸多困难,恳请知晓解决方案的人士提供帮助。

当前编写的部分代码
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,你需要先获取所有Lambda函数的ARN列表,再逐个查询每个函数的标签。以下是完整的Go语言示例代码:

package main

import (
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/lambda"
)

func main() {
    // 初始化AWS会话,替换为你的目标区域
    sess, err := session.NewSession(&aws.Config{
        Region: aws.String("us-east-1"),
    })
    if err != nil {
        log.Fatalf("创建会话失败: %v", err)
    }

    svc := lambda.New(sess)

    // 分页获取所有Lambda函数的ARN
    var allFunctions []*lambda.FunctionConfiguration
    nextMarker := aws.String("")

    for {
        listInput := &lambda.ListFunctionsInput{
            Marker: nextMarker,
        }

        result, err := svc.ListFunctions(listInput)
        if err != nil {
            log.Fatalf("列出函数失败: %v", err)
        }

        allFunctions = append(allFunctions, result.Functions...)

        // 无更多函数时终止循环
        if result.NextMarker == nil {
            break
        }
        nextMarker = result.NextMarker
    }

    // 遍历每个函数,获取标签并关联ARN输出
    for _, function := range allFunctions {
        arn := aws.StringValue(function.FunctionArn)
        fmt.Printf("ARN: %s\n", arn)

        tagInput := &lambda.ListTagsInput{
            Resource: aws.String(arn),
        }

        tagResult, err := svc.ListTags(tagInput)
        if err != nil {
            log.Printf("获取%s的标签失败: %v", arn, err)
            continue
        }

        if len(tagResult.Tags) == 0 {
            fmt.Println("  无标签")
        } else {
            fmt.Println("  标签:")
            for key, value := range tagResult.Tags {
                fmt.Printf("    %s: %s\n", key, aws.StringValue(value))
            }
        }
        fmt.Println("---")
    }
}

关键说明

  • 通过ListFunctions分页获取所有函数,适配大量Lambda函数的场景
  • 对每个函数的ARN调用ListTags接口获取标签
  • 单个函数标签查询失败时仅打印错误,不终止整个程序执行

内容的提问来源于stack exchange,提问作者Ali Mustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:35:23