Azure 搜索集 ReplicaCount by Automation 图形运行手册
Azure Search set ReplicaCount by Automation graphical runbook
Azure 搜索没有提供任何计划的缩放选项,所以我尝试通过自动化帐户来实现。
我关注了AzSearch PowerShell command,但它并没有像我预期的那样工作。
Set-AzureRmResource
与 ReplicaCount=2
参数未应用。实际上,它不给出任何结果消息。我错过了什么?
要重现我的问题,您可以在下面导入我的 runbook 文件 link;
https://gist.github.com/YoungjaeKim/5cb66a666a3a864b7379aac0a400da40
将文本文件另存为 AzureSearch-SetReplicaCount.graphrunbook
并将其导入到自动化帐户 > 添加 runbook 菜单。
根据评论,我最终制作了 PowerShell 运行手册。
我上传了powershell源码到下面link;
https://gallery.technet.microsoft.com/scriptcenter/Azure-Search-change-c0b49c4c
让我附上下面的代码;
<#
.DESCRIPTION
Scale Azure Search ReplicaCount
AzSearch command reference; https://docs.microsoft.com/en-us/azure/search/search-manage-powershell
.NOTES
AUTHOR: Youngjae Kim
LASTEDIT: June 19, 2017
#>
Param(
[string]$SubscriptionId,
[string]$ResourceGroupName,
[string]$AzSearchResourceName,
[int]$InstanceCount = 1
)
# 1. Acquire Automation account
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found. You must have Automation account. Reference: https://docs.microsoft.com/en-us/azure/automation/automation-role-based-access-control"
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
# 2. Select subscription
Select-AzureRmSubscription -SubscriptionId $SubscriptionId
# 3. Specify Azure Search Resource
$resource = Get-AzureRmResource `
-ResourceType "Microsoft.Search/searchServices" `
-ResourceGroupName $ResourceGroupName `
-ResourceName $AzSearchResourceName `
-ApiVersion 2015-08-19
Write-Output ($resource)
# 4. Scale your service up
# Note that this will only work if you made a non "free" service
# This command will not return until the operation is finished
Write-Output ("Updating InstanceCount to " + $InstanceCount + ". This can take 15 minutes or more...")
$resource.Properties.ReplicaCount = $InstanceCount
$resource | Set-AzureRmResource -Force -Confirm:$false
# 5. Finish
Write-Output ("End of Process to set InstanceCount = " + $InstanceCount + " for " + $AzSearchResourceName)
Azure 搜索没有提供任何计划的缩放选项,所以我尝试通过自动化帐户来实现。
我关注了AzSearch PowerShell command,但它并没有像我预期的那样工作。
Set-AzureRmResource
与 ReplicaCount=2
参数未应用。实际上,它不给出任何结果消息。我错过了什么?
要重现我的问题,您可以在下面导入我的 runbook 文件 link;
https://gist.github.com/YoungjaeKim/5cb66a666a3a864b7379aac0a400da40
将文本文件另存为 AzureSearch-SetReplicaCount.graphrunbook
并将其导入到自动化帐户 > 添加 runbook 菜单。
根据评论,我最终制作了 PowerShell 运行手册。
我上传了powershell源码到下面link;
https://gallery.technet.microsoft.com/scriptcenter/Azure-Search-change-c0b49c4c
让我附上下面的代码;
<#
.DESCRIPTION
Scale Azure Search ReplicaCount
AzSearch command reference; https://docs.microsoft.com/en-us/azure/search/search-manage-powershell
.NOTES
AUTHOR: Youngjae Kim
LASTEDIT: June 19, 2017
#>
Param(
[string]$SubscriptionId,
[string]$ResourceGroupName,
[string]$AzSearchResourceName,
[int]$InstanceCount = 1
)
# 1. Acquire Automation account
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found. You must have Automation account. Reference: https://docs.microsoft.com/en-us/azure/automation/automation-role-based-access-control"
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
# 2. Select subscription
Select-AzureRmSubscription -SubscriptionId $SubscriptionId
# 3. Specify Azure Search Resource
$resource = Get-AzureRmResource `
-ResourceType "Microsoft.Search/searchServices" `
-ResourceGroupName $ResourceGroupName `
-ResourceName $AzSearchResourceName `
-ApiVersion 2015-08-19
Write-Output ($resource)
# 4. Scale your service up
# Note that this will only work if you made a non "free" service
# This command will not return until the operation is finished
Write-Output ("Updating InstanceCount to " + $InstanceCount + ". This can take 15 minutes or more...")
$resource.Properties.ReplicaCount = $InstanceCount
$resource | Set-AzureRmResource -Force -Confirm:$false
# 5. Finish
Write-Output ("End of Process to set InstanceCount = " + $InstanceCount + " for " + $AzSearchResourceName)