【问题标题】:Throw Error for RDS ScalingConfiguration parameters [duplicate]RDS ScalingConfiguration 参数引发错误 [重复]
【发布时间】:2021-09-07 09:51:48
【问题描述】:

我们在 AWS Lambda 中使用这个函数,但是我们遇到了错误

运行时错误:无效的内存地址或零指针取消引用:errorString [{"path":"github.com/aws/aws-lambda-go@v1.24.0/lambda/errors.go","line":39,"label":"lambdaPanicResponse"},{"path": "github.com/aws/aws-lambda-go@v1.24.0/lambda/function.go","line":36,"label":"(Function).Invoke.func1"},{"path": "runtime/panic.go","line":679,"label":"gopanic"},{"path":"runtime/panic.go","line":199,"label":"panicmem"} ,{"path":"runtime/signal_unix.go","line":394,"label":"sigpanic"},{"path":"Lamda/main.go","line":55,"label ":"HandlerAcus"},{"path":"reflect/value.go","line":460,"label":"Value.call"},{"path":"reflect/value.go", "line":321,"label":"Value.Call"},{"path":"github.com/aws/aws-lambda-go@v1.24.0/lambda/handler.go","line": 124,"标签":"NewHandler.func1"},"路径":"github.com/aws/aws-lambda-go@v1.24.0/lambda/handler.go","line":24,"标签":"lambdaHandler.Invoke"},{"path":"github.com/aws/aws-lambda-go@v1.24.0/lambda/function.go","line":64,"label":"( Function).Invoke"},{"path":"reflect/value.go","line":460,"label":"Value.call"},{"path":"reflect/value.go", “行”:321,“标签”:“值e.Call"},{"path":"net/rpc/server.go","line":377,"label":"(*service).call"},{"path":"runtime/asm_amd64 .s","line":1357,"label":"goexit"}]

代码是

func main() {
    lambda.Start(proceso)
}

func proceso(parametros Parametros) {
    cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-1"))
    if err != nil {
        log.Fatalf("unable to load SDK config, %v", err)
    }

    acusN32 := int32(parametros.Acus)

    svc := rds.NewFromConfig(cfg)

    // Configura el objeto rds.ModifyCurrentDBClusterCapacityInput
    var param rds.ModifyDBClusterInput
    param.ScalingConfiguration.MinCapacity = &acusN32
    param.DBClusterIdentifier = &parametros.Instancia

    /* resp, err := svc.ModifyCurrentDBClusterCapacity(context.TODO(), &param) */
    resp, err := svc.ModifyDBCluster(context.TODO(),  &param)

    if err != nil {
        log.Fatalf("falló al modificar ACUS, %v", err)
    } else {
        log.Println("Los ACUS de " + *&parametros.Instancia + " quedaron seteados en " + string(*resp.DBCluster.Capacity))
    }
}

线路错误是这样的

var param rds.ModifyDBClusterInput
    param.ScalingConfiguration.MinCapacity = &acusN32
    param.DBClusterIdentifier = &parametros.Instancia`

怎么了?

&acusN32 是一个有效的 int32 指针

【问题讨论】:

    标签: amazon-web-services go aws-lambda nullpointerexception null-pointer


    【解决方案1】:

    在你的情况下看起来parametrosnil,所以你必须添加这样的东西:

    func proceso(parametros Parametros) {
      if parametros == nil {
         // log error & return
      }
      ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 2012-12-07
      • 2017-05-30
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多