将 Azure 计划程序作业迁移到 Azure 逻辑应用

重要

Azure 逻辑应用已替换于 2022 年 1 月 31 日完全停用的 Azure 计划程序。 请按照本文中的步骤,在 Azure 逻辑应用中以工作流的形式重新创建 Azure 计划程序作业,从而对其进行迁移。 Azure 计划程序在 Azure 门户中不再可用。 Azure 计划程序 REST APIAzure 计划程序 PowerShell cmdlet 不再工作。

本指南介绍如何通过使用 Azure 逻辑应用而非 Azure 计划程序来创建自动化工作流,从而安排一次性作业和定期作业。 在使用 Azure 逻辑应用创建计划作业时,将获得以下好处:

  • 使用可视化设计器构建作业,并从 Azure Blob 存储、Azure 服务总线、Office 365 Outlook 和 SAP 等 1000 多个现成连接器中进行选择。

  • 将计划的每个工作流作为一级 Azure 资源进行管理。 不必担心作业集合的概念,因为每个逻辑应用都是一个单独的 Azure 资源。

  • 使用单个逻辑应用工作流运行多个一次性作业。

  • 设置支持时区并自动调整为夏令时 (DST) 的计划。

有关详细信息,请参阅什么是 Azure 逻辑应用?或尝试按照以下任一步骤创建第一个逻辑应用工作流:

先决条件

使用脚本进行迁移

每种计划程序作业具有其独特性,因此不存在通用的工具可以将所有 Azure 计划程序作业迁移到 Azure 逻辑应用。 不过,可以编辑此脚本以满足自己的需求。

安排一次性作业

只需创建一个逻辑应用工作流即可运行多个一次性作业。

  1. Azure 门户中,创建逻辑应用资源和空白工作流。

  2. 按照以下常规步骤添加名为“收到 HTTP 请求时”的请求触发器

  3. 在请求触发器中,可以选择提供 JSON 架构,这有助于工作流设计器了解包含在请求触发器入站调用中的输入的结构,使你稍后在工作流中更易选择输出

    在“请求正文 JSON 架构”框中输入架构,例如:

    显示采用示例 JSON 请求架构的“请求”触发器的屏幕截图。

    如果你没有架构,但有一个 JSON 格式的示例有效负载,则可以基于该有效负载生成一个架构。

    1. 在“请求”触发器中,选择“使用示例有效负载生成架构”。

    2. 在“输入或粘贴示例 JSON 有效负载”下,提供示例有效负载并选择“完成”,例如 :

      显示示例 JSON 有效负载的屏幕截图。

      {
         "runat": "2012-08-04T00:00Z",
         "endpoint": "https://www.bing.com"
      }
      
  4. 在该触发器下,添加名为“延迟截止时间”的计划操作

    此操作会将工作流执行暂停到指定的日期和时间,例如:

    显示“延迟截止时间”操作的屏幕截图。

  5. 输入要启动工作流的时间戳。

    1. 在“时间戳”框中选择,然后选择动态内容列表选项(闪电图标),这样就可以选择上一操作中的输出,也就是此示例中的请求触发器

    显示“延迟截止时间”操作详细信息的屏幕截图,其中打开了动态内容列表并选择了“runAt”属性。

  6. 1000 多个现成的连接器中进行选择,以添加要运行的任何其他操作。

    例如,可以包含向 URL 发送请求的 HTTP 操作,或与存储队列、服务总线队列或服务总线主题一起使用的操作

    显示“延迟截止时间”操作,后接使用 POST 方法的 HTTP 操作的屏幕截图。

  7. 完成后,请在设计器工具栏上选择“保存”。

    首次保存工作流时,系统会生成工作流请求触发器的终结点 URL,并将其显示在“HTTP POST URL”框中,例如

    显示生成的“请求”触发器终结点 URL 的屏幕截图。

    若要使用希望工作流处理的输入手动触发工作流,可以将 HTTP 请求发送到终结点 URL。

  8. 复制并保存终结点 URL,以便可以测试工作流。

测试工作流

若要手动触发工作流,请将 HTTP 请求发送到工作流的请求触发器中的终结点 URL。 在此请求中,请添加要发送的输入或有效负载,你可能之前已通过指定架构对其进行了描述。 可以使用 HTTP 请求工具并根据其说明发送此请求。

例如,可以创建并发送使用请求触发器预期方法的 HTTP 请求,例如

请求方法 代码 Body 头文件
POST <endpoint-URL> raw

JSON(application/json)

在“raw”框中,输入要在请求中发送的有效负载。 注意:此设置会自动配置“标头”值。

:Content-Type
:application/json

取消一次性作业

在 Azure 逻辑应用中,每个一次性作业均作为单个工作流运行实例执行。 若要手动取消一次性作业,可以找到并复制工作流响应中返回的 x-ms-workflow-run-id 标头值,并根据逻辑应用的情况,使用以下 REST API 将具有此工作流运行 ID 的另一个 HTTP 请求发送到工作流的终结点 URL

安排重复作业

  1. Azure 门户中,创建逻辑应用资源和空白工作流。

  2. 按照以下常规步骤添加名为“定期”的计划触发器

  3. 如果需要,请设置更高级的计划。

    有关高级计划选项的详细信息,请参阅使用 Azure 逻辑应用创建和运行重复任务和工作流

  4. 1000 多个现成的连接器中进行选择,以添加要运行的任何其他操作。

    例如,可以包含向 URL 发送请求的 HTTP 操作,或与存储队列、服务总线队列或服务总线主题一起使用的操作

    显示使用 POST 方法的 HTTP 操作的屏幕截图。

  5. 完成后,请在设计器工具栏上选择“保存”。

高级设置

以下各部分介绍了可自定义作业的其他方法。

重试策略

若要控制在出现间歇性失败时操作尝试在工作流中重新运行的方式,可以在每个操作的设置中设置重试策略

处理异常和错误

在 Azure 计划程序中,如果默认操作无法运行,则可以运行解决错误情况的替代操作。 在 Azure 逻辑应用中,也可以执行相同的任务。 有关 Azure 逻辑应用中异常处理的详细信息,请参阅处理错误和异常 - RunAfter 属性

  1. 在设计器中,在要处理的操作上方添加并行分支

  2. 查找并选择要作为替代操作运行的操作。

  3. 在替代操作中,找到并选择“配置随后运行”选项

  4. 清除“成功”属性的相应框。 选择名为“失败”、“已跳过”和“已超时”的属性。

  5. 完成后,选择“完成”。

常见问题解答

:Azure 计划程序何时停用?
答:Azure 计划程序已在 2022 年 1 月 31 日完全停用。

问:Azure 计划程序停用后,对我的作业集合和作业有何影响?
答:所有 Azure 计划程序作业集合和作业都停止运行,并从系统中删除。

问:在将我的 Azure 计划程序作业迁移到 Azure 逻辑应用之前,是否必须备份或执行任何其他任务?
:最佳做法是始终备份你的工作。 在删除或禁用 Azure 计划程序作业之前,请检查你创建的工作流是否按预期运行。

:从 Azure 计划程序计划 Azure Web 作业会发生什么情况?
答:使用这种计划 Web 作业方式的 Web 作业不在内部使用 Azure 计划程序:“要使计划正常运行,需要将网站配置为‘始终可用’,并且不是 Azure 计划程序,而是计划程序的内部实现。”唯一会受到影响的 Web 作业是那些专门使用 Azure 计划程序通过 Web 作业 API 运行 Web 作业的作业。 可以使用 HTTP 操作从逻辑应用工作流触发这些 Web 作业。

问:是否有可以帮助我将作业从 Azure 计划程序迁移到 Azure 逻辑应用的工具?
答:每个 Azure 计划程序作业都是唯一的,因此不存在一个通用的工具。 但是,可以根据需要编辑此脚本,将 Azure 计划程序作业迁移到 Azure 逻辑应用

问:迁移 Azure 计划程序作业时,可从何处获得支持?
:以下是获得支持的一些方法:

Azure 门户

如果 Azure 订阅具有付费支持计划,则可以在 Azure 门户中创建技术支持请求。 如果没有,则可以选择其他支持选项。

  1. Azure 门户主菜单中,选择“帮助和支持”。

  2. 在“支持”菜单中,选择“新建支持请求” 。 提供有关请求的以下信息:

    属性 Value
    问题类型 技术
    订阅 <your-Azure-subscription>
    服务 选择“计划程序”。
  3. 选择所需的支持选项。 如果有付费支持计划,请选择“下一步”。

后续步骤