この記事では、REST API を使用して Azure Database for PostgreSQL - フレキシブル サーバーをバックアップする方法について説明します。
Azure PostgreSQL - フレキシブル サーバー バックアップでサポートされるシナリオ、制限事項、認証メカニズムについては、 概要ドキュメントを参照してください。
[前提条件]
バックアップの構成
コンテナーとポリシーが作成されたら、Azure PostgreSQL - フレキシブル サーバーの保護について考慮すべき 3 つの重要なポイントがあります。
関連する主なエンティティ
保護される Azure PostgreSQL フレキシブル サーバー
保護する Azure PostgreSQL フレキシブル サーバーの Azure Resource Manager ID をフェッチします。 これは、データベースの識別子として機能します。 PostgreSQL サーバー testpostgresql の下で empdb11 という名前のサーバーの例を使用します。これは、別のサブスクリプションのリソース グループ ossdemoRG に存在します。 次の例では、bash を使用します。
次の例では bash を使用します。
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver"
バックアップ資格情報コンテナー
バックアップ コンテナーは、PostgreSQL フレキシブル サーバーに接続してアクセスする必要があります。 Backup コンテナーの管理対象サービス ID (MSI) にアクセス権が付与されます。
PostgreSQL でコンテナーの MSI をバックアップするためのアクセス許可を付与する必要があります。 詳細については、こちらを参照してください。
バックアップを構成するための要求の準備
コンテナーと PostgreSQL フレキシブル サーバーに関連するアクセス許可を設定し、コンテナーとポリシーを構成したら、バックアップを構成する要求を準備します。 Azure PostgreSQL フレキシブル サーバーのバックアップを構成するには、次の要求本文を参照してください。 Azure PostgreSQL フレキシブル サーバーの Azure Resource Manager ID (ARM ID) とその詳細については、「 datasourceinfo
」セクションに記載されています。 ポリシー情報は、 policyinfo
セクションにあります。
{
"backupInstance": {
"dataSourceInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "Datasource"
},
"dataSourceSetInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "DatasourceSet"
},
"policyInfo": {
"policyId": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/pgflexpol1",
"policyVersion": ""
},
"objectType": "BackupInstance"
}
}
バックアップを構成するための要求の検証
バックアップ構成要求が成功するかどうかを検証するには、 バックアップ API の検証 を使用します。 応答を使用して必要な前提条件を実行し、その後でバックアップ要求の構成を送信できます。
バックアップ要求の検証 は POST 操作であり、Uniform Resource Identifier (URI) には {subscriptionId}
、 {vaultName}
、 {vaultresourceGroupName}
パラメーターが含まれています。
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.DataProtection/backupVaults/{backupVaultName}/validateForBackup?api-version=2021-01-01
たとえば、この API は下記のように変換されます。
POST https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/validateForBackup?api-version=2021-01-01
前に準備した要求本文は、保護する Azure PostgreSQL データベースの詳細を提供するために使用されます。
要求本文の例:
{
"backupInstance": {
"dataSourceInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "Datasource"
},
"dataSourceSetInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "DatasourceSet"
},
"policyInfo": {
"policyId": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/pgflexpol1",
"policyVersion": ""
},
"objectType": "BackupInstance"
}
}
バックアップ要求の検証の応答:
バックアップ要求の検証は、非同期操作です。 そのため、この操作では、個別に追跡する必要がある別の操作が作成されます。
これにより、2 つの応答が返されます。別の操作が作成されたときに 202 (Accepted)、その操作が完了したときに 200 (OK)。
名前 | タイプ | 説明 |
---|---|---|
202 承諾済み | 操作は非同期的に完了します。 | |
200 OK | OperationJobExtendedInfo。 | 受け入れられた |
その他の状態コードの | CloudError | エラー応答では、操作が失敗した理由が示されています。 |
バックアップ要求の検証に対する応答の例:
エラー応答
指定されたサーバーが既に保護されている場合、応答は HTTP 400 (無効な要求) として返され、指定されたサーバーがバックアップ コンテナーで既に保護され、詳細と共に示されます。
HTTP/1.1 400 BadRequest
Content-Length: 1012
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 0c99ff0f-6c26-4ec7-899f-205435e89894
x-ms-routing-request-id: WESTUS:20210830T142949Z:0be72802-02ad-485d-b91f-4aadd92c059c
Cache-Control: no-cache
Date: Mon, 30 Aug 2021 14:29:49 GMT
X-Powered-By: ASP.NET
{
"error": {
"additionalInfo": [
{
"type": "UserFacingError",
"info": {
"message": "Datasource is already protected under the Backup vault /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
"recommendedAction": [
"Delete the backup instance testpostgresql-empdb11-957d23b1-c679-4c94-ade6-c4d34635e149 from the Backup vault /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault to re-protect the datasource in any other vault."
],
"details": null,
"code": "UserErrorDppDatasourceAlreadyProtected",
"target": "",
"innerError": null,
"isRetryable": false,
"isUserError": false,
"properties": {
"ActivityId": "0c99ff0f-6c26-4ec7-899f-205435e89894"
}
}
}
],
"code": "UserErrorDppDatasourceAlreadyProtected",
"message": "Datasource is already protected under the Backup vault /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
"target": null,
"details": null
}
}
応答を追跡する
データソースが保護されていない場合、API はさらに検証を続行し、追跡操作を作成します。
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 10
Azure-AsyncOperation: https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1197
x-ms-correlation-request-id: 3e7cacb3-65cd-4b3c-8145-71fe90d57327
x-ms-routing-request-id: WESTUS:20210707T124850Z:105f2105-6db1-44bf-8a34-45972a8ba861
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 12:48:50 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
X-Powered-By: ASP.NET
単純な GET コマンドで Azure-AsyncOperation ヘッダーを使用して、結果の操作を追跡します。
GET https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
{
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"status": "Inprogress",
"startTime": "2021-07-07T12:48:50.3432229Z",
"endTime": "0001-01-01T00:00:00"
}
完了すると 200 (OK) が返され、応答本文には、アクセス許可など、満たす必要がある要件が一覧表示されます。
GET https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
{
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"status": "Failed",
"error": {
"additionalInfo": [
{
"type": "UserFacingError",
"info": {
"message": "Appropriate permissions to perform the operation is missing.",
"recommendedAction": [
"Grant appropriate permissions to perform this operation as mentioned at https://aka.ms/UserErrorMissingRequiredPermissions and retry the operation."
],
"code": "UserErrorMissingRequiredPermissions",
"target": "",
"innerError": {
"code": "UserErrorMissingRequiredPermissions",
"additionalInfo": {
"DetailedNonLocalisedMessage": "Validate for Protection failed. Exception Message: The client '00001111-aaaa-2222-bbbb-3333cccc4444' with object id 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver/providers/Microsoft.Authorization' or the scope is invalid. If access was recently granted, please refresh your credentials."
}
},
"isRetryable": false,
"isUserError": false,
"properties": {
"ActivityId": "3e7cacb3-65cd-4b3c-8145-71fe90d57327"
}
}
}
],
"code": "UserErrorMissingRequiredPermissions",
"message": "Appropriate permissions to perform the operation is missing."
},
"startTime": "2021-07-07T12:48:50.3432229Z",
"endTime": "2021-07-07T12:49:22Z"
}
すべてのアクセス許可を付与した場合は、検証要求を再送信し、結果の操作を追跡します。 すべての条件が満たされた場合、成功応答として 200 (OK) が返されます。
GET https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==?api-version=2021-01-01
{
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
"status": "Succeeded",
"startTime": "2021-07-07T13:03:54.8627251Z",
"endTime": "2021-07-07T13:04:06Z"
}
バックアップ要求の構成
要求が検証されたら、同じものをバックアップ インスタンス API の作成に送信できます。 Azure Backup データ保護サービスの 1 つは、Backup コンテナー内の Backup インスタンスを保護します。 ここでは、Azure PostgreSQL フレキシブル サーバーがバックアップ インスタンスです。 上記で検証された要求本文に若干の追加を加えたものを使用します。
バックアップ インスタンスには一意の名前を使用します。 リソース名と一意識別子の組み合わせを使用することをお勧めします。 たとえば、次の操作では、 pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149 を使用し、バックアップ インスタンス名としてマークします。
バックアップ インスタンスを作成または更新するには、次の PUT 操作を使用します。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/{BkpvaultName}/backupInstances/{UniqueBackupInstanceName}?api-version=2021-01-01
たとえば、この API は下記のように変換されます。
PUT https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149?api-version=2021-01-01
バックアップを構成するための要求の作成
バックアップ インスタンスを作成する場合、要求本文のコンポーネントは次のようになります。
名前 | タイプ | 説明 |
---|---|---|
プロパティ | BackupInstance | BackupInstanceResource プロパティ |
バックアップの構成要求の例:
一意の名前を持つ、バックアップ要求を検証するために使用したものと同じ要求本文を使用します。
{
"name": "pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149",
"type": "Microsoft.DataProtection/backupvaults/backupInstances",
"properties": {
"dataSourceInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "Datasource"
},
"dataSourceSetInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "DatasourceSet"
},
"policyInfo": {
"policyId": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/pgflexpol1",
"policyVersion": ""
}
},
"objectType": "BackupInstance"
}
}
バックアップ要求を構成するための応答
バックアップ インスタンスの作成要求は 非同期操作です。 そのため、この操作では、個別に追跡する必要がある別の操作が作成されます。 バックアップ インスタンスが作成され、保護が構成されると 、201 (Created) という 2 つの応答が返されます。 その構成が完了すると 200 (OK)が返されます。
名前 | タイプ | 説明 |
---|---|---|
201 Created | バックアップ インスタンス | バックアップ インスタンスが作成され、保護が構成されています。 |
200 OK | バックアップ インスタンス | 保護が構成されています。 |
その他の状態コードの | CloudError | 操作が失敗した理由を説明するエラー応答。 |
バックアップ要求を構成するための応答の例:
バックアップ インスタンスを作成する PUT 要求を送信すると、最初の応答は Azure-asyncOperation ヘッダーを使用して 201 (作成) になります。 要求本文には、すべてのバックアップ インスタンスのプロパティが含まれています。
HTTP/1.1 201 Created
Content-Length: 1149
Content-Type: application/json
Expires: -1
Pragma: no-cache
Retry-After: 15
Azure-AsyncOperation: https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 5d9ccf1b-7ac1-456d-8ae3-36c93c0d2427
x-ms-routing-request-id: WESTUS:20210707T170219Z:9e897266-5d86-4d13-b298-6561c60cf043
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 17:02:18 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"properties": {
"friendlyName": "pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149",
"dataSourceInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "Datasource"
},
"dataSourceSetInfo": {
"resourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/pgflextest/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgflextestserver",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceName": "pgflextestserver",
"resourceType": "Microsoft.DBforPostgreSQL/flexibleServers",
"resourceLocation": "westUS",
"objectType": "DatasourceSet"
},
"policyInfo": {
"policyId": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/pgflexpol1",
"policyVersion": ""
},
"protectionStatus": {
"status": "ProtectionConfigured"
},
"currentProtectionState": "ProtectionConfigured",
"provisioningState": "Succeeded",
"objectType": "BackupInstance"
},
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149",
"name": "pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149",
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
次に、単純な GET コマンドで、Azure-AsyncOperation ヘッダーを使用して、結果の操作を追跡します。
GET https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01
操作が完了すると、応答本文で成功を示すメッセージと共に 200 (OK) が返されます。
{
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
"status": "Succeeded",
"startTime": "2021-07-07T17:02:19.0611871Z",
"endTime": "2021-07-07T17:02:20Z"
}
保護を停止してデータを削除する
Azure PostgreSQL データベースの保護を停止し、バックアップ データも削除するには、削除操作を実行します。
保護の停止とデータの削除は DELETE 操作です。
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}?api-version=2021-01-01
たとえば、この API は下記のように変換されます。
DELETE "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/pgflextestserver-857d23b1-c679-4c94-ade6-c4d34635e149?api-version=2021-01-01"
削除保護の応答:
保護の DELETE は非同期操作です。 そのため、この操作では、個別に追跡する必要がある別の操作が作成されます。 これにより、2 つの応答が返されます。別の操作が作成されたときに 202 (Accepted)、その操作が完了したときに 200 (OK)。
名前 | タイプ | 説明 |
---|---|---|
200 OK | 削除要求の状態 | |
202 承諾済み | 受け入れられた |
削除保護の応答の例:
DELETE 要求を送信すると、最初の応答は Azure-asyncOperation ヘッダーを使用して 202 (Accepted) になります。
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 30
Azure-AsyncOperation: https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-deletes: 14999
x-ms-correlation-request-id: fee7a361-b1b3-496d-b398-60fed030d5a7
x-ms-routing-request-id: WESTUS:20210708T071330Z:5c3a9f3e-53aa-4d5d-bf9a-20de5601b090
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 07:13:29 GMT
Location: https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01
X-Powered-By: ASP.NET
簡単な GET 要求で Azure-AsyncOperation ヘッダーを追跡します。 要求が成功すると、200 (OK) と成功状態を示す応答が返されます。
GET "https://management.azure.com/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01"
{
"id": "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
"status": "Succeeded",
"startTime": "2021-07-08T07:13:30.23815Z",
"endTime": "2021-07-08T07:13:46Z"
}
次のステップ
REST API を使用して Azure Database for PostgreSQL - フレキシブル サーバーを復元します。
Azure Backup REST API について詳しくは、次の記事をご覧ください。