You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过BatchClient API删除Azure Batch应用程序包?

解决方案

目前Azure Batch .NET SDK的BatchClient确实没有提供直接删除应用程序包的API,结合你使用BatchSharedKeyCredentials的场景,推荐以下两种方案,优先选择第一种来保持操作一致性:

方案1:复用BatchSharedKeyCredentials调用Batch REST API

这种方式可以直接复用你现有的BatchSharedKeyCredentials签名请求,和现有BatchClient的身份验证机制完全一致,无需引入新的凭证体系。

示例代码:

using System.Net.Http;
using Microsoft.Azure.Batch.Auth;

// 复用你已有的BatchSharedKeyCredentials实例
var batchUri = new Uri("https://your-batch-account.your-region.batch.azure.com");
var sharedKeyCred = new BatchSharedKeyCredentials(batchUri, "your-batch-account-name", "your-account-key");

using var httpClient = new HttpClient();
// 构造删除应用程序包的请求路径,替换占位符为实际值
var requestPath = "/applications/your-app-id/versions/your-app-version?api-version=2024-02-01.18.0";
var deleteRequest = new HttpRequestMessage(HttpMethod.Delete, new Uri(batchUri, requestPath));

// 用BatchSharedKeyCredentials生成授权头
var authHeader = sharedKeyCred.AuthorizeRequest(deleteRequest);
deleteRequest.Headers.Add("Authorization", authHeader);

// 发送请求并验证结果
var response = await httpClient.SendAsync(deleteRequest);
response.EnsureSuccessStatusCode();

该方案的核心是利用BatchSharedKeyCredentials的AuthorizeRequest方法为REST请求生成合法的授权头,完全复用现有身份验证逻辑,和你用BatchClient操作池、作业的方式保持一致。

方案2:使用Azure资源管理SDK(备选)

如果后续考虑切换到托管身份(系统/用户分配),可以使用Azure.ResourceManager.Batch SDK来删除应用程序包,但需要引入新的身份验证机制(如DefaultAzureCredential):

示例代码:

using Azure;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;

// 用托管身份初始化ArmClient
var armClient = new ArmClient(new DefaultAzureCredential());
// 构造Batch账户的资源ID,替换占位符
var batchAccountId = ResourceIdentifier.Parse("/subscriptions/your-sub-id/resourceGroups/your-rg/providers/Microsoft.Batch/batchAccounts/your-batch-account");
var batchAccount = armClient.GetBatchAccountResource(batchAccountId);

// 获取目标应用程序包资源并删除
var appPackage = batchAccount.GetBatchApplicationPackage("your-app-id", "your-app-version");
await appPackage.DeleteAsync(WaitUntil.Completed);

但该方案需要调整身份验证方式,无法直接复用现有的BatchSharedKeyCredentials,所以仅作为备选。

内容的提问来源于stack exchange,提问作者Danish Samad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:22:14