C#AmazonDeviceFarmClient ListDevicesAsync不返回设备的完整列表

时间:2019-10-16 11:07:27

标签: c# amazon-web-services aws-device-farm

我们将AmazonDeviceFarmClient.ListDevicesAsync调用与一个非常简单的ListDevicesRequest一起使用,以获取C#平台的设备场中所有可用设备的列表。

我们的代码示例:

var cfg = new AmazonDeviceFarmConfig
{
    RegionEndpoint = RegionEndpoint.USWest2
};

using (var client = new AmazonDeviceFarmClient(new BasicAWSCredentials([DeviceFarmAccessKey], [DeviceFarmSecretKey]), cfg))
{
    var arn = GetProjectArn();

    var response = client.ListDevicesAsync(new ListDevicesRequest
    {
        Arn = arn
    }).Result;
}

在Powershell / python中,使用aws devicefarm list-devices命令返回所有可能设备的完整列表。

使用我们的C#代码,我们得到了一个被截断的列表,尽管没有过滤器,但缺少了一些我们需要的设备。我们尝试了各种方法,包括更改API用户的权限以及更改所在区域。

我们似乎最好的做法是越来越多地在C#环境中运行Powershell脚本,而不是使用C#设备场API(其list devices命令似乎不起作用)。

鉴于我们正在等待使用Result关键字的结果,我不希望这是一个异步问题。

1 个答案:

答案 0 :(得分:0)

正如Jeroen Mostert指出的,我们错过了NextToken属性。它发送了一个不完整的列表(一个不均匀的数字,例如236,这使我们认为这不是分页类型问题),并且在重复调用同一方法时使用NextToken给了我们一些剩余的结果。

感谢您的及时回复!