Как установить вывод aws -sdk- go в «текст»? - PullRequest
0 голосов
/ 10 апреля 2020

Хотя для параметра 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

В соответствии к этой AWS документации можно задать конфигурацию:

sess, err := session.NewSession(&aws.Config{
    Region: aws.String("us-east-2")},
)

Одной попыткой было обратиться к этой структуре конфигурации , но Output

Как установить вывод для текста?

Примечание: добавлена ​​проблема Страница github aws -sdk- go.

Пример

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"
    }
}

while aws route53 list-resource-record-sets --hosted-zone-id some-id, приводит к:

RESOURCERECORDSETS      some-domain.     7200    A
RESOURCERECORDS some-ip

Проблема

Хотя можно установить формат aws -кли для вывода, кажется, что невозможно сделать то же самое для SDK.


Вопрос

Как разрешить go - aws -sdk вернуть text вместо json?

1 Ответ

0 голосов
/ 30 апреля 2020

У меня есть вся необходимая информация, вам просто нужно распутать ее из ответа (записей).

Чтобы получить аналогичные результаты из последней команды 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("")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...