Azure.ResourceManager.Sql を使って、SQL Database の長期バックアップも設定できる。
毎月 1 回目のフルバックアップを 2 ヶ月保有するように変更するサンプルは次の通り。
using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Sql; using Azure.ResourceManager.Sql.Models; const string subscriptionId = "サブスクリプション ID"; const string resourceGroupName = "リソースグループ名"; const string serverName = "Azure SQL Server リソース名"; const string databaseName = "データベース名"; const string monthlyRetention = "P2M"; // 2 か月保管 var armClient = new ArmClient(new DefaultAzureCredential()); var id = SqlDatabaseResource.CreateResourceIdentifier( subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, serverName: serverName, databaseName: databaseName); SqlDatabaseResource sqlDatabase = await armClient.GetSqlDatabaseResource(id).GetAsync(); Console.WriteLine(sqlDatabase.Data.Name); LongTermRetentionPolicyResource policy = await sqlDatabase.GetLongTermRetentionPolicyAsync( new LongTermRetentionPolicyName("default")); Console.WriteLine($"Name: {policy.Data.Name}"); Console.WriteLine($"WeeklyRetention: {policy.Data.WeeklyRetention}"); Console.WriteLine($"MonthlyRetention: {policy.Data.MonthlyRetention}"); Console.WriteLine($"WeekOfYear: {policy.Data.WeekOfYear}"); Console.WriteLine($"YearlyRetention: {policy.Data.YearlyRetention}"); if (policy.Data.MonthlyRetention != monthlyRetention) { policy.Data.MonthlyRetention = monthlyRetention; // WeekOfYear は 1 以上 52 以下でないといけない if (policy.Data.WeekOfYear == 0) { policy.Data.WeekOfYear = 1; } var operation = await policy.UpdateAsync( Azure.WaitUntil.Completed, data: policy.Data); var response = await operation.WaitForCompletionAsync(); policy = response.Value; Console.WriteLine($"Name: {policy.Data.Name}"); Console.WriteLine($"WeeklyRetention: {policy.Data.WeeklyRetention}"); Console.WriteLine($"MonthlyRetention: {policy.Data.MonthlyRetention}"); Console.WriteLine($"WeekOfYear: {policy.Data.WeekOfYear}"); Console.WriteLine($"YearlyRetention: {policy.Data.YearlyRetention}"); } Console.ReadLine();