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

作业已存在如何删除?已知JobID,如何通过SDK删除IoT Hub已完成作业?

嘿,我来帮你搞定Azure IoT Hub作业删除的问题~下面分两种场景给你详细说明:

删除Azure IoT Hub作业的方法

一、在Azure门户手动删除作业

如果是少量作业,直接在门户操作最方便:

  • 登录Azure门户,找到你的目标IoT Hub资源
  • 在左侧导航栏的「设备管理」分类下,点击「作业」选项
  • 在作业列表里找到要删除的作业,勾选它,然后点击顶部工具栏的「删除」按钮
  • 在弹出的确认窗口里点击「是」,完成删除

注意:只有已完成、失败、已取消状态的作业才能被删除,运行中的作业无法直接删除,需要先点击「取消」按钮,等作业状态变为已取消后再执行删除操作。

二、通过SDK删除指定JobID的作业

如果你有一批已知JobID的已完成作业,用SDK批量处理效率更高,这里给你两种常用语言的实现示例:

C# SDK示例

首先确保你安装了Azure IoT Hub的NuGet包:Microsoft.Azure.Devices

using Microsoft.Azure.Devices;
using System;
using System.Threading.Tasks;

class JobDeletionSample
{
    static async Task Main(string[] args)
    {
        // 替换为你的IoT Hub连接字符串
        string iotHubConnString = "你的IoT Hub连接字符串";
        // 替换为要删除的目标JobID
        string targetJobId = "your-target-job-id";

        var registryManager = RegistryManager.CreateFromConnectionString(iotHubConnString);

        try
        {
            // 执行删除操作
            await registryManager.DeleteJobAsync(targetJobId);
            Console.WriteLine($"作业 {targetJobId} 已成功删除");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"删除作业失败:{ex.Message}");
            // 如果是运行中的作业,可先调用CancelJobAsync取消后再重试
            // await registryManager.CancelJobAsync(targetJobId);
        }
        finally
        {
            await registryManager.CloseAsync();
        }
    }
}

Python SDK示例

先安装依赖包:pip install azure-iot-hub

from azure.iot.hub import IoTHubRegistryManager

def delete_specific_job(iot_hub_conn_string, job_id):
    registry_manager = None
    try:
        registry_manager = IoTHubRegistryManager(iot_hub_conn_string)
        registry_manager.delete_job(job_id)
        print(f"作业 {job_id} 删除成功")
    except Exception as ex:
        print(f"删除作业出错:{str(ex)}")
        # 若作业处于运行状态,可先取消再删除
        # registry_manager.cancel_job(job_id)
    finally:
        if registry_manager:
            registry_manager.disconnect()

if __name__ == "__main__":
    # 替换为你的IoT Hub连接字符串
    conn_string = "你的IoT Hub连接字符串"
    # 替换为目标JobID
    job_to_delete = "your-target-job-id"
    delete_specific_job(conn_string, job_to_delete)

注意事项

  • 作业删除后无法恢复,执行前请确认作业已不需要保留
  • 调用SDK删除时,确保你的连接字符串拥有IoT Hub Registry Write权限
  • 对于运行中的作业,必须先调用CancelJobAsync(C#)或cancel_job(Python)取消,等待作业状态更新为已取消后,再执行删除操作

内容的提问来源于stack exchange,提问作者Carlos Sánche Rodríguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:23:29