如何在Azure批处理池中使用Azure共享库VM映像

时间:2019-09-19 15:16:44

标签: azure .net-core azure-batch

我已经从通用VM创建了一个共享图像库,我正在尝试在Azure批处理池创建中使用它。但是我没有成功。我正在使用C#创建批处理池。有人做过吗?有人可以给我一些成功的秘诀吗?

2 个答案:

答案 0 :(得分:0)

是的,您的身份验证正确无误,调用Azure Batch管理服务的应用程序将通过Azure Active Directory(Azure AD)进行身份验证。

Batch Management .NET库公开用于处理Batch帐户,帐户密钥,应用程序和应用程序包的类型。批处理.NET库是Azure资源提供程序客户端,与Azure Resource Manager一起使用以编程方式管理这些资源。必须使用Azure AD来验证通过任何Azure资源提供程序客户端(包括Batch Management .NET库)和通过Azure资源管理器发出的请求。

在下面的文章中,您可以阅读有关注册应用程序和访问批处理客户端所需的权限的更多信息:

https://docs.microsoft.com/en-us/azure/batch/batch-aad-auth-management

您的客户端应用程序使用应用程序ID(也称为客户端ID)在运行时访问Azure AD。

一旦您已经使用权限设置对Azure AD进行了身份验证,则可以使用以下代码执行操作:

private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
    try
    {
        CloudPool pool = batchClient.PoolOperations.CreatePool(
            poolId: PoolId,
            targetDedicatedComputeNodes: PoolNodeCount,
            virtualMachineSize: PoolVMSize,
            virtualMachineConfiguration: vmConfiguration);

        pool.Commit();
    }
    ...

参考:

https://docs.microsoft.com/en-us/azure/batch/batch-custom-images#create-a-pool-from-a-shared-image-using-c

您可以浏览以下仓库以更好地了解它:

https://github.com/Azure-Samples/azure-batch-samples/blob/master/CSharp/AccountManagement/Program.cs

此外,要打开BatchClient连接,您需要传递BatchTokenCredentials:

public static Microsoft.Azure.Batch.BatchClient Open (Microsoft.Azure.Batch.Auth.BatchTokenCredentials credentials);

其他参考:

https://github.com/paulo-santos/azure-batch-samples/blob/master/CSharp/BatchExplorer/Service/BatchService.cs

希望有帮助。

答案 1 :(得分:0)

要使用共享图像库创建自定义池,需要AAD身份验证。您可以注册服务主体来完成它,如文档Authenticate Batch service solutions with Active Directory中所述。它具有C#中的示例代码。

我还写了post,介绍如何使用sig创建池。示例代码是使用Python编写的,但是背后的想法是相同的。