在PowerShell工作流活动中,我可以使用InlineScript调用本机PowerShell脚本:
workflow test
{
InlineScript
{
.\script.ps1
}
}
但是在Azure自动化中,点路径(至少在我的测试中)返回 c:\windows\system32
,Azure自动化中的脚本运行簿在那里不存在(或者更确切地说,它无法执行,因为它找不到脚本) .
-
是否可以像这样执行存储在AAuto中的本机PS Runbook?
-
如果是这样,我如何指定文件的路径?
-
这是Azure Automation的Workflow Runbooks和InlineScript活动的解析/编译过程中的错误/疏忽,是否阻止将依赖Runbook复制到worker?
我做了一点狩猎,发现当执行本机PS Runbook时:
-
首先检查它们是否有任何其他Runbook参考 .
-
作为部署到工作程序执行的一部分,在
C:\Temp\
下创建一个随机命名的文件夹 -
最终将引用的Runbook复制到此文件夹 .
-
如果未找到要引用的Runbook,则不会将它们复制到临时目录 .
-
根Runbook似乎未复制到该文件夹 .
-
执行Workflow Runbook时,未创建动态命名的文件夹(在c:\ Temp下) .
-
作为标准工作流编译的一部分,InlineScript活动将其内容复制到自动生成的xaml . 我不确定链接文件,但是基于看起来像运行时关注的行为 . 我的猜测是,每次执行工作流程时都会进行编译(因此延迟启动),并且在工作人员上进行编译,使用标准PS工作流程编译,就像本地工作一样 .
我无法(轻松地)将此脚本转换为工作流,并且可以在其他工作流活动中使用它 . 现在,我可以使这个“工作”的唯一方法是将脚本复制并粘贴到需要它的工作流程中的第一个InlineScript中,从维护的角度来看这显然是单调乏味的 .
据推测,作为一种解决方法,我可以使用混合工作者,但这带来了许多其他问题,例如确保在那里发布子Runbook并且必须单独维护它们,或者AAuto不会自动将自定义模块从自动化帐户推送到 Worker (虽然这是计划好的)等
1 回答
请参阅https://azure.microsoft.com/en-us/blog/announcing-powershell-script-support-azure-automation-2/:
它还没改变:)