go 边走边转 我想从AWS中提取所有自动缩放组 AWS在多个页面中提供响应,NextToken指向下一页。因此,您需要继续查找下一个主题,并提取组名 如果没有NextToken,则退出,go,go,go,Go" /> go 边走边转 我想从AWS中提取所有自动缩放组 AWS在多个页面中提供响应,NextToken指向下一页。因此,您需要继续查找下一个主题,并提取组名 如果没有NextToken,则退出,go,go,go,Go" />

go 边走边转 我想从AWS中提取所有自动缩放组 AWS在多个页面中提供响应,NextToken指向下一页。因此,您需要继续查找下一个主题,并提取组名 如果没有NextToken,则退出

go 边走边转 我想从AWS中提取所有自动缩放组 AWS在多个页面中提供响应,NextToken指向下一页。因此,您需要继续查找下一个主题,并提取组名 如果没有NextToken,则退出,go,go,go,Go,在python中,我会: import boto3 import pprint session = boto3.session.Session(region_name='us-west-2') client = session.client('autoscaling') resp = client.describe_auto_scaling_groups() pprint.pprint(resp) while 'NextToken' in resp: resp = client.d

在python中,我会:

import boto3
import pprint

session = boto3.session.Session(region_name='us-west-2')
client = session.client('autoscaling')

resp = client.describe_auto_scaling_groups()
pprint.pprint(resp)

while 'NextToken' in resp:
    resp = client.describe_auto_scaling_groups(NextToken=resp['NextToken'])          
    pprint.pprint(resp)
我在中遵循了类似的逻辑,并得出了以下代码:

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/autoscaling"
)

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

    if err != nil {
        fmt.Println("Failed to create session: ", sess)
        return
    }

    svc := autoscaling.New(sess)
    params := &autoscaling.DescribeAutoScalingGroupsInput{}
    resp, err := svc.DescribeAutoScalingGroups(params)

    if err != nil {
        fmt.Println("Something Went wrong")
        return
    }

    fmt.Println(resp)

    for {
        if resp.NextToken == nil {
            fmt.Println("No more pages left")
            break
        }

        params := &autoscaling.DescribeAutoScalingGroupsInput{
            NextToken: aws.String(*resp.NextToken),
        }
        resp, err := svc.DescribeAutoScalingGroups(params)

        if err != nil {
            fmt.Println("Something Went wrong")
            return
        }

        fmt.Println(resp)
    }
}
问题:我的代码转到第二页,然后继续在同一第二页上循环。它不会进入第3页(当
resp
中有
NextToken
时)或不会退出(当
resp
中没有
NextToken
时)


正在寻求有关我的代码的帮助。我正在学习

你内心的
resp
似乎与你原来的
resp
相似。在循环的内部
中尝试此操作(
:=
替换为
=
):


谢谢如果我在外部
resp
之前声明
var error
,则代码失败,错误
err在此块中重新声明。如果我在internal
resp
之前声明
var error error
,则行为没有变化。@slayedbylucifer所以这没有帮助?如果你只是在循环中用
=
替换
:=
怎么办?嗨@Ainar-G,用
=
替换
:=
会出现错误,说
未定义:resp
@slayedbylucifer你确定要替换内部resp中的
:=
吗?@slayedbylucifer是的,写
a,b:=foo()
与var a,b=foo()基本相同。所以你用它定义了新的变量。在这种情况下,您定义了一个新变量
resp
,它不同于您在其上方的
if
中选中的
resp
。这是一个常见的问题,
:=
resp, err = svc.DescribeAutoScalingGroups(params)