はじめに
こちらでは、カスタムイメージを使った「おれおれ App Service」を作りました。ここではその削除手順を示します。
手順
作成時とは逆の手順を踏む必要があります。以下ようになります。
- SKU の削除
- VMSS インスタンスの削除
- VMSS イメージの 2016-Datacenter への変更
- Worker Tier の削除
SKU の削除
通常の Worker Tier の削除と同様に、まずは削除する Worker Tier を使用している SKU を削除します。
VMSS インスタンスの削除
Worker Tier の Provisioning が完了し、インスタンスがゼロになっている事を確認します。
VMSS イメージの変更
作成時とは逆に、VMSS のイメージを「2016-Datacenter」に変更します。
$vmss = Get-AzureRmVmss -ResourceGroupName appservice.local -Name CustomWorkerTierScaleSet
$vmss.VirtualMachineProfile.StorageProfile.ImageReference.Sku = "2016-Datacenter"
$vmss.VirtualMachineProfile.StorageProfile.ImageReference.Version = "Latest"
Update-AzureRmVmss -ResourceGroupName appservice.local -Name CustomWorkerTierScaleSet -VirtualMachineScaleSet $vmss
Worker Tier の削除
VMSS イメージが「2016-Datacenter」に変更されたことを確認したら Worker Tier を削除します。
これで Worker Tier 及び VMSS が削除されるはずです。
VMSS イメージを戻さずに Worker Tier の削除を実行した場合
VMSS イメージを 2016-Datacenter に戻すのを忘れると、VMSS だけが削除され、Worker Tier が残ってしまいます。
App Service の Worker Tiers ブレードでは、以下の様な状態に。
こうなった場合は、Delete の上の Rebuild を実行すると VMSS が再作成されます。そうしたら VMSS イメージを変更した上で削除を実行してください。
Rebuild できない場合
Rebuild を実行できない場合は、手動で VMSS を作成します。
Web ポータルからでは文字数制限に引っかかって「なんちゃらWorkerTierScaleSet」という名前の VMSS は作成できないので、 Powershell や Azure CLI を使います。以下は Powershell の例です。
$vmssName = "CustomWorkerTierScaleSet"
$vmPassword = ConvertTo-SecureString -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential("workeradmin", $vmPassword)
$vmss = New-AzureRmVmssConfig -Location "local" -SkuCapacity 1 -SkuName "Standard_A1" -UpgradePolicyMode "Automatic"
$PublisherName = "MicrosoftWindowsServer"
$Offer = "WindowsServer"
$Sku ="2016-Custom"
$Version = "latest"
Set-AzureRmVmssStorageProfile -Name "CustomWorkerTier" -OsDiskCreateOption 'FromImage' -OsDiskCaching "None" -ImageReferenceOffer $Offer -ImageReferenceSku $Sku -ImageReferenceVersion $Version -VirtualMachineScaleSet $vmss
New-AzureRmVmss -Credential $vmCred -VMScaleSetName CustomWorkerTierScaleSet -Location local -ResourceGroupName appservice.local
おわりに
カスタム Worker Tier の削除手順を示しました。
普通に削除できない事からも真っ当なやり方では無い事が明らかですが、やりようがあるなら何でも良いと思います。
管理するのはあくまで「Azure Stack Hub Operator」なので。