【问题标题】:How to use Azure Shared Gallery VM image in Azure Batch Pool如何在 Azure Batch Pool 中使用 Azure 共享库 VM 映像
【发布时间】:2019-09-19 15:16:44
【问题描述】:

我已经从通用 VM 创建了一个共享图像库,我正在尝试在 Azure 批处理池创建中使用它。但我一直没有成功。我正在使用 C# 创建批处理池。有没有人这样做过?有人能给我一些关于如何成功的建议吗?

【问题讨论】:

  • 确保您使用的是最新的 C# SDK,因为旧的 SDK 使用不支持共享图像库的 REST API。然后你应该可以关注docs.microsoft.com/en-us/azure/batch/batch-custom-images。分享您收到的任何错误以及您正在使用的代码可能会有所帮助,以便其他人可以参考您的经验/进度。
  • 感谢您及时回复 Brklein。这就是我所关注的。但它不起作用。我怀疑这与许可有关。我认为我的 Batch 应用程序需要在 Azure AD 中注册。有没有人让这个工作?

标签: azure .net-core azure-batch


【解决方案1】:

是的,您在身份验证方面是正确的,调用 Azure Batch Management 服务的应用程序使用 Azure Active Directory (Azure AD) 进行身份验证。

Batch Management .NET 库公开了用于处理 Batch 帐户、帐户密钥、应用程序和应用程序包的类型。 Batch Management .NET 库是 Azure 资源提供程序客户端,与 Azure 资源管理器一起使用,以编程方式管理这些资源。需要 Azure AD 对通过任何 Azure 资源提供程序客户端(包括 Batch Management .NET 库)以及通过 Azure 资源管理器发出的请求进行身份验证。

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

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

您可以浏览以下 repo 以更好地理解它:

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

希望对你有帮助。

【讨论】:

    【解决方案2】:

    要使用共享图片库创建自定义池,需要 AAD 身份验证。您可以按照文档Authenticate Batch service solutions with Active Directory 中的说明注册服务主体来执行此操作。它有 C# 中的示例代码。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      相关资源
      最近更新 更多