我正在制作一个启动批处理的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变量的屏幕截图:
答案 0 :(得分:1)
这是您正在寻找的链接:
在此处了解应用程序包的概念:https://docs.microsoft.com/en-us/azure/batch/batch-application-packages
自此处启用python SDK以来:https://docs.microsoft.com/en-us/python/api/azure-batch/azure.batch.operations.applicationoperations?view=azure-python
希望这会有所帮助。
答案 1 :(得分:0)
我最近没有尝试使用Azure Python SDK,但是解决此问题的方法是使用Azure REST API: https://docs.microsoft.com/en-us/rest/api/batchservice/application/list
为了获得授权,我必须创建一个应用程序并授予其访问批处理服务的权限,然后我通过以下请求以编程方式生成令牌:
data = {'grant_type': 'client_credentials',
'client_id': clientId,
'client_secret': clientSecret,
'resource': 'https://batch.core.windows.net/'}
postReply = requests.post('https://login.microsoftonline.com/' + tenantId + '/oauth2/token', data)