登录
首页 >  Golang >  Go问答

不断出现构建失败,并且无法使用 SAM CLI 保存 lambda 函数的 main.go 文件的导入

来源:stackoverflow

时间:2024-04-21 20:45:34 418浏览 收藏

golang学习网今天将给大家带来《不断出现构建失败,并且无法使用 SAM CLI 保存 lambda 函数的 main.go 文件的导入》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我正在尝试为 lambda 函数的 main.go 文件导入“github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue”,但每次保存导入都会消失。

我有一些简单的 golang 代码尝试通过更新 dynamodb 表来更新访问者计数。

构建一直失败,提示属性值未定义,但我无法保存属性值的导入。

package main

import (
    "context"
    "log"

    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"

    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/feature/dynamodb"
    "github.com/aws/aws-sdk-go-v2/service/dynamodb"
)

func handler(request events.apigatewayproxyrequest) (events.apigatewayproxyresponse, error) {

    cfg, err := config.loaddefaultconfig(context.todo(), config.withregion("us-east-1"))
    if err != nil {
        log.fatalf("unable to load sdk config, %v", err)
    }

    svc := dynamodb.newfromconfig(cfg)

    // build the request with its input parameters
    resp, err := svc.updateitem(context.todo(), &dynamodb.updateiteminput{
        tablename: aws.string("table-name"),
        key: map[string]*dynamodb.attributevalue{
            "id": {
                s: aws.string("visitors"),
            },
        },
        updateexpression: aws.string("add visitors :inc"),
        expressionattributevalues: map[string]*dynamodb.attributevalue{
            ":inc": {
                n: aws.string("1"),
            },
        },
    })

    if err != nil {
        log.fatalf("got error callingupdateitem: %s", err)
    }

    return events.apigatewayproxyresponse{
        headers: map[string]string{
            "access-control-allow-origin":  "*",
            "access-control-allow-methods": "*",
            "access-control-allow-headers": "*",
        },
        statuscode: 200,
    }, nil
}

func main() {
    lambda.start(handler)
}

当我去 mod 供应商时,我得到

2882​​96736911

执行 go get github.com/aws/aws-sdk-go-v2/featrues/dynamodb 我明白

go: module github.com/aws/aws-sdk-go-v2@upgrade found (v1.16.11), but does not contain package github.com/aws/aws-sdk-go-v2/featrues/dynamodb

我对 go 很陌生,不知道如何解决这个问题。任何帮助将不胜感激。


正确答案


如果您检查 github.com/aws/aws-sdk-go-v2/feature。可用的软件包是 dynamodb/attributevalue 或 dynamodb/expression。看起来您正在使用属性值,因此导入应具有“github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue”

理论要掌握,实操不能落!以上关于《不断出现构建失败,并且无法使用 SAM CLI 保存 lambda 函数的 main.go 文件的导入》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>