如何使用托管身份删除Azure批处理池和作业?

时间:2019-11-27 12:16:45

标签: c# azure azure-functions azure-batch azure-managed-identity

使用C#,我可以使用客户端ID和客户端密钥删除Azure批处理池和作业-但目前,我们希望通过使用托管身份使用Azure函数来删除它们。 这是我当前的代码:

internal async Task<string> GetAuthenticationTokenAsync()
{
    var authContext = new AuthenticationContext(AuthorityUri);
    var authResult = await authContext.AcquireTokenAsync(BatchResourceUri, new ClientCredential(BatchCredentials["ClientId"], BatchCredentials["ClientKey"])).ConfigureAwait(false);
    return authResult.AccessToken;
}

Task<string> TokenProvider() => GetAuthenticationTokenAsync();
using (var Batch = BatchClient.Open(new BatchTokenCredentials(BatchCredentials["BatchAccountURL"], TokenProvider)))
{
    var CloudPools = Batch.PoolOperations.ListPools();
    var JobList = Batch.JobOperations.ListJobs();
    foreach (var pool in CloudPools)
    {
        pool.DeleteAsync();
    }
    foreach (var job in JobList)
    {
        job.DeleteAsync();
    }
}

我在msdn social中看到Azure批处理中当前不支持MSI,那么是否有其他选择仅删除Azure批处理池和作业?

注意:如果在C#中不可能,那么我也可以使用Rest API或PowerShell删除批处理帐户的池和作业

1 个答案:

答案 0 :(得分:1)

Azure批处理计算节点上不支持

托管身份,但是,您可以在支持该身份的其他Azure资源上使用托管身份来向Azure Batch资源提供者进行身份验证。请参阅this doc