gpt4 book ai didi

amazon-web-services - 无法使用Golang SDK在AWS athena上执行查询

转载 作者:行者123 更新时间:2023-12-03 02:24:57 32 4
gpt4 key购买 nike

我是 AWS 和 Golang 的新手,我正在尝试创建一个 lambda 函数,它将触发 AWS Athena 查询并使用 AWS SES 服务通过电子邮件发送结果。即使搜索了一个小时,我也找不到 lambda 函数(Golang 中)的工作示例来在 Athena 上执行查询并获取查询的输出。

在搜索时,我在 Java、Python 和 Node Js 中找到了相同的代码,但在 Golang 中没有找到。

甚至是Go-SDK page重定向到 Java 示例。但不幸的是,我连Java都不懂。

我也研究过这个AWS SDK for Go API Reference页。但我不明白程序的流程是什么以及选择哪个操作。

我尝试为此创建程序,这可能是完全错误的,我不知道下一步该怎么做。下面是代码 -

package main

import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/athena"
)

func main() {

// Create a new session in the us-west-2 region.
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-1")},
)

// Create an Athena session.
client := athena.New(sess)

// Example sending a request using the StartQueryExecutionRequest method.
query := "SELECT * FROM table1 ;"
params := query
req, resp := client.StartQueryExecutionRequest(params)

err1 := req.Send()
if err1 == nil { // resp is now filled
fmt.Println(resp)
}
}

如果有人可以帮助我执行 Athena 查询并在 Golang 中获取其结果(最好)或者可以共享一些资源,我将不胜感激。收到后,我就可以使用 AWS SES 发送电子邮件。

最佳答案

使用它来开始。

// run as: go run main.go
package main

import (
"context"
"fmt"

"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/aws/endpoints"
"github.com/aws/aws-sdk-go-v2/aws/external"
"github.com/aws/aws-sdk-go-v2/service/athena"
)

const table = "textqldb.textqltable"
const outputBucket = "s3://bucket-name-here/"

func main() {

cfg, err := external.LoadDefaultAWSConfig()
if err != nil {
fmt.Printf("config error: %v\n", err)
return
}

cfg.Region = endpoints.UsEast2RegionID

client := athena.New(cfg)

query := "select * from " + table

resultConf := &athena.ResultConfiguration{
OutputLocation: aws.String(outputBucket),
}

params := &athena.StartQueryExecutionInput{
QueryString: aws.String(query),
ResultConfiguration: resultConf,
}

req := client.StartQueryExecutionRequest(params)

resp, err := req.Send(context.TODO())
if err != nil {
fmt.Printf("query error: %v\n", err)
return
}

fmt.Println(resp)
}

关于amazon-web-services - 无法使用Golang SDK在AWS athena上执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911981/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com