gpt4 book ai didi

json - 如何将aws-sdk-go的输出设置为“text”?

转载 作者:行者123 更新时间:2023-12-01 22:36:37 25 4
gpt4 key购买 nike

尽管output设置已设置为text
〜/ .aws / config

[default]
output=text

aws-sdk-go返回 json。问题是输出是否可以切换到 text

什么时候:
aws route53 get-hosted-zone --id some-id

运行后,输出如下所示:
NAMESERVERS some-ns
NAMESERVERS some-ns1
NAMESERVERS some-ns2
NAMESERVERS some-ns3

根据 this AWS documentation可以设置配置:
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-2")},
)

一种尝试是 to consult this Config struct,但是似乎省略了 Output选项。

如何将输出设置为文本?

注意: an issue也已添加到aws-sdk-go的github页面上。

示例
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/route53"
)

func main() {
session, err := session.NewSession()
if err != nil {
log.Fatal(err)
}
r53 := route53.New(session)

listParams := &route53.ListResourceRecordSetsInput{
HostedZoneId: aws.String("some-id"),
}
records, err := r53.ListResourceRecordSets(listParams)

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

fmt.Println(records)
}

返回:
{
IsTruncated: false,
MaxItems: "100",
ResourceRecordSets: [
{
Name: "some-domain.",
ResourceRecords: [{
Value: "some-ip"
}],
TTL: 7200,
Type: "A"
}
}

aws route53 list-resource-record-sets --hosted-zone-id some-id则导致:
RESOURCERECORDSETS      some-domain.     7200    A
RESOURCERECORDS some-ip

问题

虽然可以将aws-cli的格式设置为输出,但似乎无法对SDK进行相同的操作。

问题

如何让go-aws-sdk返回 text而不是 json

最佳答案

我拥有您需要的所有信息,您只需要从响应(记录)中解开即可。

要从最后的cli命令获得类似的结果:

for _, recordSet := range records.ResourceRecordSets {
log.Println("RESOURCERECORDSETS " + *recordSet.Name + strconv.Itoa(int(*recordSet.TTL)) + *recordSet.Type)
for _, record := range recordSet.ResourceRecords {
log.Println("RESOURCERECORDS " + *record.Value)
}
log.Println("")
}

关于json - 如何将aws-sdk-go的输出设置为“text”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61139305/

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