我正在构建我的Azure Logic Apps工作流,它应该检查一些条件并运行以下Powershell:
Stop-AzureWebsiteJob -Name MyWebsite -JobName MyWebJob
Start-AzureWebsiteJob -Name MyWebsite -JobName MyWebJob -JobType Continuous
问题是:在Azure Logic Apps中调用此类脚本的最简单方法是什么?Powershell似乎没有内置块/连接器,因此我想知道可能性有多大。或者,使用类似操作运行az CLI命令可能更简单
5条答案
按热度按时间dgsult0t1#
最后,我得到了一个利用Azure自动化的解决方案。从Azure门户,我们可以在
Automation
中创建新的资源类型:创建资源后,我们可以在Runbook选项卡下添加新的Runbook:
Runbook可以运行Powershell Workflow并使用
AzureRunAsConnection
选项获得授权(详细信息here)。我的示例Powershell应该重新启动WebJob特定的应用程序服务,如下所示:设置此工作流后,我们可以通过向我们的逻辑添加新块来从Azure Logic Apps运行它。
yxyvkwin2#
目前,azure逻辑似乎不支持运行powershell和cli脚本,这里是a voice in azure feedback,你可以投票。
解决方法:
如果要启动和停止Web作业,可以在逻辑应用程序中调用Kudu WebJobs API。
您可以按照以下步骤操作。
1.在本地运行powershell命令以生成Web应用的授权令牌。
$base64AuthInfo
是我们需要的,它应该像JGpveXdlYmFwcDI6NnJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzRktSdXlUcU5acUUzdFhNb05j
一样。除了您
reset the publish profile
之外,令牌永远不会更改,因此您只需要执行一次此步骤。2.在逻辑应用中,指定方法、URI、头(头应该像
Authorization: Basic JGpveXdlYmFwcDI6NnJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzRktSdXlUcU5acUUzdFhNb05j
,注意使用空格分隔Basic
和token),例如,我在Web应用中启动了一个触发的Web作业。触发结果:
因此,您只需要按照上述步骤操作,对于您的问题,请参阅APIS:
1.启动连续作业
1.停止连续作业
mf98qq943#
使用Powershell作为函数语言(或任何其他受支持的语言),创建一个包含http触发器的Azure函数。然后,通过调用Http终结点,在Logic应用中轻松调用该函数。
j2cgzkjk4#
实际上现在Azure提供了这个选项,没有创建Runbook和自动化帐户。2它仍然处于预览模式,但似乎正在工作!
kokeuurv5#
你还可以让PowerShell代码在支持PowerShell的Azure容器示例中运行,并从Logic App工作流创建新的容器组。