このエントリは2022/11/11現在の情報に基づいています。将来の機能追加や変更に伴い、記載内容との乖離が発生する可能性があります。
いつもの人から、タイトル通りの問い合わせが届いた。
Azure API Managementのインスタンスを作成したが、選択したSKUが所望のものではなかったので、Azure Portalから一旦削除してから再度同じ名前、異なるSKUで作成しようとしたところ、エラーになった。なぜ?
これは以下のドキュメントにある通り、論理削除状態になっているため。
API Management の論理的な削除 (プレビュー) / API Management soft-delete (preview)
https://learn.microsoft.com/azure/api-management/soft-delete

どうやら問い合わせ主はPortalで削除したために、論理削除になった結果、再作成時にエラーが発生したよう。
対処法
作成時のオプションは特にないので、削除時のみ注意する必要がある。
- Portalで削除しない
- Azure CLIやPowerShell、もしくは古いREST APIで削除する
でもPortalで削除したほうが楽(Resource Groupごと削除したい)ということもあるので、その場合は以下の手順を踏む必要がある。
1. REST API (Deleted Services – Get By Name) を使って論理削除されたAPI Managementインスタンスが存在することを確認
Deleted Services – Get By Name
https://learn.microsoft.com/rest/api/apimanagement/current-ga/deleted-services/get-by-name
2-(a) 別の REST API (Deleted Services – Purge) を使って、論理削除されたAPI Managementインスタンスを完全削除
Deleted Services – Purge
https://learn.microsoft.com/rest/api/apimanagement/current-ga/deleted-services/purge
2-(b) 論理削除されたAPI Managementインスタンスを回復する場合には、REST API (Api Management Service – Create Or Update) を使う。このとき、JSONにrestoreフラグがあるので、これをtrueにしておく(ドキュメントにもある通り、restoreフラグがtrueであれば、他の設定は無視される)。
Api Management Service – Create Or Update
https://learn.microsoft.com/rest/api/apimanagement/current-ga/api-management-service/create-or-update
{
"properties": {
"publisherEmail": "help@contoso.com",
"publisherName": "Contoso",
"restore": true
},
"sku": {
"name": "Developer",
"capacity": 1
},
"location": "South Central US"
}
詳細はこちら。
削除された API Management インスタンスを一覧表示する / List deleted API Management instances
https://learn.microsoft.com/azure/api-management/soft-delete#list-deleted-api-management-instances
論理的に削除されたインスタンスを回復する / Recover a soft deleted instance
https://learn.microsoft.com/azure/api-management/soft-delete#recover-a-soft-deleted-instance
論理的に削除されたインスタンスを消去する / Recover a soft deleted instance
https://learn.microsoft.com/azure/api-management/soft-delete#purge-a-soft-deleted-instance