【问题标题】:Alternatives for daily task日常任务的替代品
【发布时间】:2017-12-30 12:55:22
【问题描述】:

首先,让我说我是 Azure 新手。我来自 AWS 世界,所以我还不知道这个新平台中的最佳路线。

我想编写一个任务,假设它是一个 PowerShell 脚本,每天在预定时间运行一次。每天完成实际任务不应超过一分钟。

此任务的一个重要方面是它需要访问我公司的内部主机。 Azure 中有一个 VPN 设置,因此我可以配置任何我想要的 VM,它能够访问这些服务器。

我希望我可以使用 Azure Functions,但我怀疑我是否有能力在该服务中配置网络。

然后我开始研究 Azure 自动化,看起来我应该能够构建一些东西来唤醒 VM,并且 VM 可能会在启动时运行任务,然后在完成后自行关闭。在我走那条路之前,我想知道我没有错过更容易的东西。

我的目标是创建一个可重复的模式,让我自己和我的团队中的其他人可以创建几个这样的不频繁、快速的任务,而不需要虚拟机几乎一整天都处于空闲状态。

【问题讨论】:

    标签: azure azure-virtual-machine azure-automation


    【解决方案1】:

    如果您使用应用程序服务计划(而非消费计划)设置 Azure 功能,您将有权访问允许您设置点到站点 VPN 的 VNET 集成。

    Function App > Platform Features > Networking > Networking > VNET Integration

    【讨论】:

    • 是只对每次执行收费还是需要一个永远在线的虚拟机?
    • 消费计划是按执行收费的。这需要一个应用服务计划,基本上是一个专用的虚拟机。这是定价:azure.microsoft.com/en-us/pricing/details/app-service
    • 谢谢。正如我所说,我正在尝试找到一种只为每次执行大致支付费用的好方法,同时对执行环境有更多的控制权。也许我毕竟必须自动化 VM 生命周期。
    【解决方案2】:

    您可以为此使用 Azure 自动化,您可以结合运行云作业和在混合工作器中运行来实现此目的。

    首先将 Azure VM 设置为混合工作器。

    这是 Hybrid Worker 的文档。 https://docs.microsoft.com/en-us/azure/automation/automation-hybrid-runbook-worker

    然后基本上你可以有一个在云中运行的父运行手册(脚本)的组合,当你想在其中运行某些东西时启动 Azure VM(使用 Start-AzureVM)在运行手册中等待一段时间VM 启动,然后当它启动时,使用 Start-AzureAutomationRunbook cmdlet 在 Azure VM 上运行您的 PowerShell 脚本,并使用 RunOn 参数(见下文)

    https://docs.microsoft.com/en-us/powershell/module/Azure/Start-AzureAutomationRunbook?view=azuresmps-4.0.0

    然后,您可以从父 Runbook 关闭 VM。 (停止-AzureVM)

    这是许多 Azure 自动化客户使用的模式。

    【讨论】:

    • 这种方法不需要我的数据中心上的新服务器吗? “混合运行手册工作者”?我真的想将此任务移至 Azure。如果我需要在我的 DC 中添加一个新服务器,我想我更愿意使用任务计划程序直接在那里运行任务。也许这是一个比我想象的要困难得多的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-03-23
    • 2013-07-02
    • 1970-01-01
    • 2011-06-20
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    相关资源
    最近更新 更多