安排Azure CLI脚本

时间:2018-03-29 08:17:25

标签: azure azure-cli

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

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

或者,是否可以在Azure Cloud Shell中以某种方式创建预定作业...我认为这是由某些VM支持的,因此如果它是基于Linux的,我们可能会发起一个cron作业......我不知道该怎么做。

的Ta!

2 个答案:

答案 0 :(得分:4)

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

Azure CLI有两个版本:

  • 1.0
    • 构建为node.js模块
    • 可以通过运行npm install -g azure-cli
    • 进行安装
  • 2.0
    • 独立包
    • 在Windows上安装MSI或使用某个软件包管理器,例如Linux上的apt / yum / zyper / etc。

Azure App Service

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

但是,建议使用v2.0。但这会提供一种自动化的可能性。

Azure自动化

当前的Azure CLI不支持,但在撰写本文时,目前正在审核中。有关uservoice建议,请参阅此link,如果这是所需功能,请对其进行投票。

Azure功能

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

Azure计划程序

Azure Scheduler是一种仅调用其他位置托管的代码的服务。这仍然意味着您需要在其他地方(即云或本地)托管您的代码,然后让调度程序为您运行它。

支持的触发机制是:

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

Azure Cloud Shell

它是一个shell,包含运行命令和脚本所需的工具,而无需在本地安装任何东西。使用cron调度任何东西似乎都不可能。

建议

目前,如果您想编写某些内容并在云中运行,我建议您查看PowerShell。可以在Azure Functions上运行PowerShell脚本和时间触发器,并支持添加自己的自定义模块。

如果您需要使用Azure CLI和无服务器,那么您可以在Docker容器内运行它并在云中托管容器,例如在Azure Container Instances。请参阅this链接,了解如何创建它。

答案 1 :(得分:0)

您可以为此使用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管道”选项卡创建一个新管道:

  • 选择管道脚本的位置
  • 选择分支
  • 选择管线模板:“启动程序管道”
  • 将上面的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