名古屋事業所の多田です。
APIの移行をしようとして、最終的にバックアップ・リストアに落ち着いたことがあったので、その手順についてご紹介します。
最初は・・・
エクスポート・インポート機能を使用して、API Management サービス内にある API の移行を実施する予定だったのですが、肝心のインポートがエラーによりできず、移行したい API を持ってこれませんでした。
そのため、代案としてバックアップ・リストアの機能を使用した・・・という背景があります。
ただし、APIだけでなく、API Managementそのものが更新される点に注意する必要があります。
実行環境
ローカル
- AzurePowerShell
- Az モジュール :ver4.3.0(4.2.0以下は未検証)
ポータル
- バックアップ先となる API Management サービス
- リストア先となる API Management サービス
- 異なる名称で作成します
1. バックアップ
1.1 ストレージアカウントの作成
移行元のバックアップデータを格納するストレージアカウントを作成します。
- 環境毎に以下の値を置き換えます
- "StorageAccountName"
- "LocationName"
- "ResouceGroupName"
New-AzStorageAccount `
-StorageAccountName "StorageAccountName" `
-Location "LocationName" `
-ResourceGroupName "ResouceGroupName" `
-Type Standard_LRS
1.2 コンテキストの作成
バックアップに使用するストレージアカウントのコンテキストを作成します。
- 環境毎に以下の値を置き換えます
- "StorageAccountName"
- "ResouceGroupName"
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName "ResouceGroupName" -StorageAccountName "StorageAccountName")[0].Value
$storageContext = New-AzStorageContext -StorageAccountName "StorageAccountName" -StorageAccountKey $storageKey
1.3 API Management バックアップ
移行元となる API Management サービスを、作成したストレージアカウントにバックアップします。
Container と Blob は既存になければ新規作成されます。
- 環境毎に以下の値を置き換えます
- "BackupSource ResouceGroupName"
- "BackupSource API ManagementServiceName"
- "BackupTarget ContainerName"
- "BackupTarget BlobName"
Backup-AzApiManagement `
-ResourceGroupName "BackupSource ResouceGroupName" `
-Name "BackupSource API ManagementServiceName" `
-StorageContext $StorageContext `
-TargetContainerName "BackupTarget ContainerName" `
-TargetBlobName "BackupTarget BlobName"
2. リストア
2.1 API Management リストア
移行先となる API Management サービスを、リストアして更新します。
- 環境毎に以下の値を置き換えます
- "RestoreTarget ResouceGroupName"
- "RestoreTarget API ManagementServiceName"
- "BackupSource ContainerName"
- "BackupSource BlobName"
Restore-AzApiManagement `
-ResourceGroupName "RestoreTarget ResouceGroupName" `
-Name "RestoreTarget API ManagementServiceName" `
-StorageContext $StorageContext `
-SourceContainerName "BackupSource ContainerName" `
-SourceBlobName "BackupSource BlobName"
3. 作成後
ポータルの API Management サービスを開き、ブレードにある「Network connectivity status」にエラーが表示されている場合はしばらく様子を見ます。
20分ぐらいで消えるはず・・・。
解消されていれば問題ありません。
ソース管理
SCM
An error occurred while sending the request.
参考
Backup-AzApiManagement
https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/Backup-AzApiManagement?view=azps-4.3.0&viewFallbackFrom=azps-4.3.0)
Restore-AzApiManagement
https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/Restore-AzApiManagement?view=azps-4.3.0