我正在尝试创建一个Azure自动化系统来更改Function应用程序的始终就绪示例的数量(应用程序服务计划是Elastic Premium One EP 1):
创建自动化系统是为了在工作日将“始终就绪”示例的数量设置为3,在周末将其设置为1。
系统由以下两个在Azure自动化帐户服务下创建的runbook组成:
1.“Runbook-Weekdays”
$resourceGroupName = "xxxxxxxxxxxx"
$functionApp = "xxxxxxxxxx-func"
$Resource = Get-AzResource -ResourceGroupName $resourceGroupName -ResourceName $functionApp/config/web -ResourceType Microsoft.Web/sites
$Resource.Properties.minimumElasticInstanceCount = 3
$Resource | Set-AzResource -Force
1.“Runbook-Weekend-days”
$resourceGroupName = "xxxxxxxxxxxx"
$functionApp = "xxxxxxxxxxxx-func"
$Resource = Get-AzResource -ResourceGroupName $resourceGroupName -ResourceName $functionApp/config/web -ResourceType Microsoft.Web/sites
$Resource.Properties.minimumElasticInstanceCount = 1
$Resource | Set-AzResource -Force
请注意,我在自动化帐户中使用的是“系统分配”身份。
当自动化逻辑使用Azure逻辑应用程序实现时:
其中“条件”框下的表达式为:formatDateTime(utcNow(),'dddd')
,从上图中可以看出,它只为工作日设置。
下图是Logic App的第二部分:
请注意,在Logic Apps中创建自动化作业时,我选择了“OAuth default”作为身份验证方法,然后我只需粘贴订阅的tenantID。
现在,如果我从Logic App服务测试Logic App,它可以正常工作:
我希望总是准备好的示例的数量等于3,但是如果我检查总是准备好的示例的数量,没有任何变化:
另外,转到Runbook页面的错误页面:
我看到以下两个错误:
Get-AzResource : Run Connect-AzAccount to login. At line:4 char:13 + $Resource = Get-AzResource -ResourceGroupName $resourceGroupName -Res ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzResource], PSInvalidOperationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceCmdlet
和/或
The property 'minimumElasticInstanceCount' cannot be found on this object. Verify that the property exists and can be set. At line:5 char:1 + $Resource.Properties.minimumElasticInstanceCount = 3 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound
你知道可能是什么问题吗?
2条答案
按热度按时间xmjla07d1#
您是否已在Runbook中登录?
第一个错误告诉您使用
Connect-AzAccount
进行连接,第二个错误是属性不存在的一般错误,因为$Resource
对象没有该属性。1.第一个错误:
在自动化帐户控制台中,在帐户设置->身份下,确保将系统分配的身份设置为:
然后,单击“Azure role assignments”按钮,并检查您是否在功能应用的资源组中拥有“Contributor”角色并分配给Azure自动化帐户:
最后,在脚本中添加以下代码:
1.第二个错误:
转到Function App控制台,然后在Settings下单击“Configuration”并验证您是否具有属性“minimumElasticInstanceCount”:
如果你没有这个属性,你可以简单的创建它,点击"新建应用程序设置"按钮。
这是一个有用的Azure文档:
https://learn.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation#authenticate-access-with-system-assigned-managed-identity
iyfamqjs2#
错误“Run Connect-AzAccount to login”表示运行命令的调用不是在允许进行调用的安全上下文中进行的。
在您的情况下,是逻辑应用程序进行调用。因此,首先要检查的是逻辑应用程序的安全上下文。