我正在使用Azure批处理服务在ubuntu节点上进行计算,它运行正常。最近我想将节点更改为在同一个子网上,因此我将来可以使用mpi,也可以使用NFS来访问公共文件服务器上的文件。
但是在添加之后:
network_configuration = batchmodels.NetworkConfiguration(subnet_id=subnet.id)
到我的batchmodels.PoolAddParameter我突然收到:
{' value':'服务器无法验证请求。确保 形成授权标头的值 正确\ nRequestId:a815194a-8a66-4cb4-847e-60db4ca3ff10 \ n时间:2017-10-23T15:04:00.3938448Z&#39 ;, ' lang':' en-US'}
为什么有任何想法?如果没有network_configuration,我的游泳池开始正常......
答案 0 :(得分:2)
终于让它发挥作用......
我需要为此处使用的两个客户端提供相同的凭据(然后再次不完全)。此外,我需要在应用程序中激活批处理我必须设置以获取凭据...我结束了这样的事情:
def get_credentials(res):
if res=='mgmt':
r='https://management.core.windows.net/'
elif res=='batch':
r="https://batch.core.windows.net/"
credentials = ServicePrincipalCredentials(
client_id = id,
secret = secret,
tenant = tenant,
resource = r
)
return credentials
network_client = NetworkManagementClient(get_credentials('mgmt'), sub_id)
batch_client = batch.BatchServiceClient( get_credentials('batch'), base_url=batchserviceurl)
答案 1 :(得分:0)
您需要使用Azure Active Directory通过批处理服务进行身份验证,以便在具有批处理服务池分配模式帐户(默认设置)的池上启用NetworkConfiguration
。