gpt4 book ai didi

powershell - 从 Web 作业运行 Azure PowerShell 命令

转载 作者:行者123 更新时间:2023-12-02 22:40:28 25 4
gpt4 key购买 nike

更新:我按照下面 BenV 的建议使用了 Azure 自动化,并且成功了!更多信息可查看here

<小时/>

我有一个 PowerShell 脚本,需要运行一些 Azure 命令,例如 New-AzureStorageContextGet-AzureStorageContainerSet-AzureStorageBlobContent、等等。我想将脚本作为网络作业运行。

当我将此脚本作为 Web 作业运行时,我在 Azure 命令上收到以下错误。其他 PS 命令从 webjob 成功运行。

我搜索了 StackOverflow,但找不到有关从 Webjob 运行 Azure 命令时生成的这些错误的帖子。有些相关的帖子提到使用 Import-Module ,这与下面给出的建议类似。

较早的 MSDN 博文建议在 PS 脚本中添加“Import-Module Azure.ps1”,并将 Azure.ps1 包含在 webjob zip 文件中。 (这实际上是我本地 C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure 中的 Azure.psd1)。另外,我尝试使用 Azure.psd1 和 Azure.ps1 导入模块,认为错误可能与文件扩展名有关,但事实并非如此。

我的 webjob .zip 文件仅包含我的 .CMD 文件、GetLinks.ps1 和 Azure.ps1。

我的 .CMD 文件使用以下命令启动我的 PS 脚本:PowerShell.exe -ExecutionPolicy RemoteSigned -File GetLinks.ps1

在此 .ps1 文件的顶部有:“Import-Module .\Azure.ps1”。由于我在 WebJob 运行日志中看到“INFO”语句,因此运行成功。

接下来,我的 PS 脚本尝试运行 Azure PS 命令,但我仍然遇到与下面的示例错误相同的错误。

<小时/>
New-AzureStorageContext : The term 'New-AzureStorageContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At D:\local\Temp\jobs\triggered\getlinks2\b2025qk5.ddj\GetLinks.ps1:75 char:19
+ $storageContext = New-AzureStorageContext -StorageAccountName $storageAccountNam ...
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (New-AzureStorageContext:String) [], CommandNotFoundException

+FullyQualifiedErrorId:CommandNotFoundException

最佳答案

运行 WebJobs 的沙箱当前不支持 Azure PowerShell。有多种因素:

  1. worker 上未安装 CmdLets
  2. 即使安装了,也存在阻止其正常运行的问题
  3. 即使它们运行,您也需要在运行命令之前进行身份验证。最后一部分可以使用服务主体来解决。

因素 #2 是最大的障碍。我们希望能够达到这一点,但现在这很棘手。

一种潜在的解决方法是直接执行 ARM 请求,尽管这需要更多工作(并且您仍然需要使用服务主体进行身份验证)。您还可以编写 C# 代码来进行调用。

关于powershell - 从 Web 作业运行 Azure PowerShell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com