☁️
Azure Application Gatewayを停止・再起動する方法 3選
Application Gatewayを停止したいときありませんか? 高価なAzureサービスかつリソースの再作成にも手間がかかるため、一時的に停止できるのであればそうしたいですよね。
実のところAzure Application Gatewayはポータルから停止・再起動できない Azureサービスの1つなのです。※理由は分かりません。
■やりたいこと
- Azure Application Gateway のリソースを停止・再起動したい人
- Azureが好きな人
- ポータル以外でAzureを操作したい人
■結論(3パターンあります)
- Azure CLI を利用する方法
- Az PowerShell を利用する方法
- Azure REST API を利用する方法
※ 本ブログの解説ではPowerShell 7系
を利用しています。
■前提条件
# コマンドで使用する必要なパラメータを定義する
$tenantId = '<テナントID>'
$subscriptionId = '<サブスクID>'
$applicationGatewayName = '<アプリケーションゲートウェイ名>'
$resourceGroupName = '<リソースグループ名>'
■(1) Azure CLI を利用する
前提操作
# Microsoft Entra ID(旧:Azure AD テナント)にログインする
az login --tenant $tenantId
# アクティブなサブスクリプションを設定する
az account set --subscription $subscriptionId
Application Gatewayを停止する
az network application-gateway stop `
--name $applicationGatewayName `
--resource-group $resourceGroupName
Application Gatewayを再起動する
az network application-gateway start `
--name $applicationGatewayName `
--resource-group $resourceGroupName
■(2) Az PowerShell を利用する
前提操作
# ※事前にPowerShell Gallery パッケージをインストールしましょう(既にインストール済みの場合スキップしてください)
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -AllowClobber
# MEIDへのログインとサブスクリプションを設定する
Connect-AzAccount -TenantId $tenantId -SubscriptionId $subscriptionId
Application Gatewayを停止する
# アプリケーションゲートウェイのリソース情報を$AppGwに格納する(OperationalState = 'Running')
$AppGw = Get-AzApplicationGateway `
-Name $applicationGatewayName `
-ResourceGroupName $resourceGroupName
Stop-AzApplicationGateway -ApplicationGateway $AppGw
Application Gatewayを再起動する
# アプリケーションゲートウェイのリソース情報を$AppGwに格納する(OperationalState = 'Stopped')
$AppGw = Get-AzApplicationGateway `
-Name $applicationGatewayName `
-ResourceGroupName $resourceGroupName
Start-AzApplicationGateway -ApplicationGateway $AppGw
■(3) Azure REST API を利用する
前提操作
# ※事前にPowerShell Gallery パッケージをインストールしましょう(既にインストール済みの場合スキップしてください)
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -AllowClobber
# MEIDへのログインとサブスクリプションを設定する
Connect-AzAccount -TenantId $tenantId -SubscriptionId $subscriptionId
# Token情報を$getAccessに格納する(Bearer tokenになります)
$getAccess = Get-AzAccessToken
Application Gatewayを停止するREST APIを定義する
$url = "https://management.azure.com/subscriptions/" + $subscriptionId + "/resourceGroups/" + $resourceGroupName + "/providers/Microsoft.Network/applicationGateways/" + $applicationGatewayName + "/stop?api-version=2023-09-01"
Application Gatewayを再起動するREST APIを定義する
$url = "https://management.azure.com/subscriptions/" + $subscriptionId + "/resourceGroups/" + $resourceGroupName + "/providers/Microsoft.Network/applicationGateways/" + $applicationGatewayName + "/start?api-version=2023-09-01"
REST APIを実行する
$method = "POST"
$authHeader = "Bearer " + $getaccess.Token
$requestHeader = @{Authorization = $authHeader}
$contenttype = "application/json"
Invoke-WebRequest -Uri $url -Method $method -Headers $requestHeader -ContentType $contenttype
Discussion