从 Account.getVirtualGuests() 获取 500 内部服务器错误

Getting 500 Internal Server Error from Account.getVirtualGuests()

在过去的一年半里,我一直在使用一种特殊的方法从我们的帐户加载虚拟客人。在过去一周的某个时候,它坏了。以下代码(使用 ruby gem 3.1.1)returns 500 内部服务器错误:

  softlayer_client = SoftLayer::Client.new()
  obj_svc = softlayer_client['Account']
  obj_svc = obj_svc.object_mask('mask[ id,tagReferences  ]')
  result = obj_svc.getVirtualGuests()
  result.each do |pre_obj|
    puts pre_obj.inspect
  end

但这不是:

  softlayer_client = SoftLayer::Client.new()
  obj_svc = obj_svc.object_mask('mask[ id  ]')
  result = obj_svc.getVirtualGuests()
  result.each do |pre_obj|
    puts pre_obj.inspect
  end

最近似乎 tagReferences 坏了,因为它已经工作了很长时间。

我已经检查了您的第一个代码块,它工作正常。然而,您面临的问题可能是由于该方法返回的对象数量(虚拟来宾或标记对象)所致。这可以使用 result_limit(OFFSET, LIMIT) 来避免,如下例所示:

OFFSET = 0
LIMIT = 5
USERNAME = 'set me'
API_KEY = 'set me'
softlayer_client = SoftLayer::Client.new(username: USERNAME, api_key: API_KEY)
obj_svc = softlayer_client['Account']
obj_svc = obj_svc.object_mask('mask[ id,tagReferences  ]')
obj_svc = obj_svc.result_limit(OFFSET, LIMIT)
result = obj_svc.getVirtualGuests()
result.each do |pre_obj|
  puts pre_obj.inspect
end

如果它不能解决您的问题,请尝试下载最新的 softlayer ruby 客户端 gem(即 3.2.1)

您还可以查看下一个 link:

https://sldn.softlayer.com/blog/phil/How-Solve-Error-fetching-http-headers