【发布时间】:2020-02-20 20:04:58
【问题描述】:
我正在制作一个启动批处理的 python 应用程序。 我想通过用户输入创建一个池。 为简单起见,我只是将批处理帐户中存在的所有应用程序添加到池中。 我无法获得可用应用程序包的列表。 这是代码部分:
import azure.batch.batch_service_client as batch
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
client_id='xxxxx',
secret='xxxxx',
tenant='xxxx',
resource="https://batch.core.windows.net/"
)
batch_client = batch.BatchServiceClient(
credentials,
base_url=self.AppData['CloudSettings'][0]['BatchAccountURL'])
# Get list of applications
batchApps = batch_client.application.list()
我可以创建一个池,所以凭据很好并且有应用程序,但返回的列表是空的。 有人可以帮我解决这个问题吗?
谢谢你, 圭多
更新:
我试过了:
import azure.batch.batch_service_client as batch
batchApps = batch.ApplicationOperations.list(batch_client)
和
import azure.batch.operations as batch_operations
batchApps = batch_operations.ApplicationOperations.list(batch_client)
但它们似乎不起作用。 batchApps 始终为空。 我认为这不是身份验证问题,否则我会收到错误消息。 此时我想知道这是否只是python SDK中的一个错误?
我使用的 SDK 版本是:
azure.batch:4.1.3
天蓝色:4.0.0
这是空的 batchApps var 的屏幕截图:
【问题讨论】:
-
您如何确定返回的正文中没有任何内容?您应该注意响应是分页的,并且页面可能是空的,因此您需要确保跟随下一个链接。此外,您应该发布单个 get 操作的结果,以表明列表中实际上没有返回结果。 SDK 的版本也会有所帮助。
-
@brklein 我添加了您要求的信息。你觉得它是空的吗?
-
列表看起来是空的。我更多的是寻找您认为应该列出的应用程序的获取请求,以确保列出的软件包/它们存在于正确的帐户中。如果您想公开 accountName/requestId,我也可以查看服务日志以验证行为。
-
@brklein 抱歉,我很忙。当然,我从哪里获得 requestId?
-
是的,如果服务没有给出响应/返回身份验证错误,则应该会出错。您是否激活了您的应用程序包? docs.microsoft.com/en-us/rest/api/batchmanagement/…
标签: azure azure-batch