命令“Get-AzFunctionApp”在 Azure 自动化 Runbook 中不起作用

问题描述

我创建了一个 Runbook添加到下面的 cmdlet

   Get-AzFunctionApp  | Stop-AzFunctionApp

我收到以下错误

术语“Get-AzFunctionApp”未被识别为 cmdlet 的名称

我已经导入了以下所有模块,但没有成功

enter image description here

添加“Az.Functions”后出现以下错误

失败 无法验证参数“SubscriptionId”的参数。参数为 null 或为空。提供一个非 null 或空的参数,然后重试该命令。 (参数为 null 或空。提供一个不为 null 或为空的参数,然后重试该命令。)

解决方法

cmdlet Get-AzFunctionApp / Stop-AzFunctionApp 包含在此模块中:Az.Functions

请导入这个模块,然后相关的功能就可以运行了。

这是一个例子(请注意为 -Force 添加 Stop-AzFunctionApp 参数),它按照我的测试工作:

$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

Get-AzFunctionApp -ResourceGroupName xxx | Stop-AzFunctionApp -Force
,

从您发布的屏幕截图来看,您似乎缺少包含 Get-AzFunctionAppStop-AzFunctionApp cmdlet 的 Az.Functions 模块。

要将 Az.Functions 模块导入您的自动化帐户,请执行以下操作:

  1. 在您的自动化帐户中,在共享资源下,选择模块
  2. 选择浏览图库
  3. 在搜索栏中,输入模块名称 (Az.Functions)。
  4. 在“PowerShell 模块”页面上,选择导入以将模块导入您的自动化帐户。

Import module

您也可以通过 PowerShell Gallery 导入模块。选择Azure 自动化 选项卡,然后从此处选择部署到 Azure 自动化Az.Functions