amazon-web-services - AWS Firehose 和 Go 问题

标签 amazon-web-services go amazon-kinesis-firehose

我正在尝试将一个简单的文件发送到 Go 中的 Firehose 并继续获取:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4015b7]

goroutine 1 [running]:
panic(0x8b9260, 0xc82000a0e0)
    /usr/lib/go-1.6/src/runtime/panic.go:481 +0x3e6
main.main()
    /home/ubuntu/go/src/github.com/user/proj/txtParser.go:68 +0x5b7
exit status 2

下面是小脚本

package main

import (
"fmt"
"github.com/aws/aws-sdk-go/service/firehose"
"github.com/aws/aws-sdk-go/aws/session"
"io/ioutil"
"log"   
)

func main() {

  sess := session.Must(session.NewSession())

  svc := firehose.New(sess)

  firehoseData, err := ioutil.ReadFile("/tmp/adsDat1")

  if err != nil {
    log.Fatal(err)
  }

  var rec *firehose.Record

  var recInput *firehose.PutRecordInput

  rec.SetData(firehoseData)
  recInput.SetDeliveryStreamName("test-ads-txt")
  recInput.SetRecord(rec)

  res, err1 := svc.PutRecord(recInput)

  if err1 != nil {
   log.Fatal(err1)
  }
  fmt.Println(res)
}

关于正在发生的事情的任何想法我确信这很简单,但我已经盯着它看太久了,似乎无法弄清楚。

最佳答案

弄清楚了,我使用类型的指针声明我的变量,而不是使用类型声明我的变量。看看下面应该如何

 var rec firehose.Record

 var recInput firehose.PutRecordInput

还添加了地址而不是变量

 recInput.SetRecord(&rec)

 res, err1 := svc.PutRecord(&recInput)

而且有效。

关于amazon-web-services - AWS Firehose 和 Go 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331054/

相关文章:

google-cloud-platform - 谷歌云平台 : accumulate data from Pub/Sub to files in Cloud Storage without Dataflow

amazon-web-services - 连接到 DynamoDB Docker 时无法使用 NoSQL Workbench for DynamoDB 找到表

go - unicode 按字面输出而不是 unicode

android - 使用 Amazon SNS 移动推送服务注册移动/Android 端点

utf-8 - 使用 Go 从连接中读取 utf8 编码的数据

unicode - 在 Go 中输出不带引号的 Unicode

amazon-web-services - Kinesis Firehose - 什么是 S3 扩展目标配置?

amazon-web-services - 使用 Athena 查询 s3 中的 AWS firehose 数据 - 无法查询批处理

c# - 如何在 AWS CDK PolicyStatement AddAction 方法中嵌套键值对?

Python3.8 - FastAPI 和无服务器 (AWS Lambda) - 无法处理发送到 api 端点的文件