计划 Azure CLI 脚本

Schedule Azure CLI Script

我对此进行了一些搜索,但是是否有关于如何使用 Azure CLI 命令安排 运行 作业的文档?

我想 运行 在云中,但 azure 自动化不支持 CLI(目前),所以我倾向于使用 Azure Scheduler...但不知道优缺点...

或者,是否可以在 Azure 云中以某种方式创建计划作业 Shell...我假设这是由某些 VM 支持的,因此如果它是基于 Linux我们可以快速完成一个 cron 作业...不过我真的不知道该怎么做。

Ta!

我试图找到一些关于如何在云中使用 Azure CLI 的信息,但似乎没有太多可用的信息。

Azure CLI 有两个版本:

  • v1.0
    • 构建为 node.js 模块
    • 可以通过运行ning安装npm install -g azure-cli
  • v2.0
    • 独立包
    • 在 Windows 上安装 MSI 或使用一些包管理器,例如apt/yum/zyper/etc,在 Linux。

Azure 应用服务

Azure Web Apps 支持 运行 构建在 node.js 之上的应用程序。从技术上讲,您可以在 Web 应用程序中安装 v1.0 模块,并在那里按计划 运行 您的脚本。

不过,推荐使用v2.0。但这将提供一种自动化的可能性。

Azure 自动化

当前的 Azure CLI 不受支持,但在撰写本文时正在审查中。请参阅此 link 以获取用户意见,如果这是所需的功能,请对其进行投票。

Azure 函数

据我所知,无法在 Azure Functions 上 运行 Azure CLI。

Azure 调度程序

Azure Scheduler 是一种仅用于调用别处托管的代码的服务。这仍然意味着您需要将代码托管在其他地方,即云或 on-premises,然后让调度程序 运行 为您服务。

支持的触发机制有:

  • HTTP、HTTPS
  • Azure 存储队列
  • Azure 服务总线队列
  • Azure 服务总线主题

蔚蓝云Shell

它是一个 shell,包含 运行ning 命令和脚本所需的工具,无需在本地安装任何东西。调度什么的,用cron好像不行。

建议

目前,如果您想编写一些脚本,并且 运行 它在云端,我建议您看看 PowerShell。 运行 PowerShell 脚本,在 Azure Functions 上可以使用时间触发器并支持添加您自己的自定义模块。

如果您需要使用 Azure CLI 和无服务器,那么您可以 运行 它在 Docker 容器中并将容器托管在云中,例如在 Azure Container Instances. See this link 中介绍如何创建它。

您可以为此使用 AzureDevOps 管道:

pr: none 
trigger: none
schedules:
- cron: "0 7 * * 1-5"
  displayName: "Working-hours (7 am UTC, Monday to Friday)"
  always: true
  branches:
    include:
    - master
    
steps:
  - task: AzureCLI@2
    inputs:
      azureSubscription: 'PipelineServiceConnection'
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: 'az --version'

您需要做的是通过 AzureDevops Pipelines 选项卡创建一个新管道:

  • 选择管道脚本的位置
  • 选择分支
  • 选择管道模板:“入门管道”
  • 在编辑器中粘贴上面的yaml代码
  • 保存并运行管道

yaml 脚本使用名为 'PipelineServiceConnection' 的服务连接来创建此类服务连接,请参阅:https://docs.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure?view=azure-devops

有关 AzureCLI 任务的更多信息: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-cli?view=azure-devops

配置预定管道: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml