你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Java 的 Azure 资源管理器 RecoveryServicesBackup 客户端库 - 版本 1.2.0
适用于 Java 的 Azure 资源管理器 RecoveryServicesBackup 客户端库。
此包包含 Microsoft Azure SDK for RecoveryServicesBackup Management SDK。 打开 Azure 恢复服务备份服务的 API 2.0 规范。 包标记 package-2023-04。 有关如何使用此包的文档,请参阅 适用于 Java 的 Azure 管理库。
我们希望听到你的反馈
我们一直在努力改进我们的产品和与用户沟通的方式。 因此,我们希望了解工作原理,以及如何做得更好。
如果尚未完成,请花几分钟时间完成我们汇总的 简短调查 。
提前感谢你的协作。 我们非常感谢你的时间!
文档
提供了各种文档来帮助你入门
入门
先决条件
将包添加到产品
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-recoveryservicesbackup</artifactId>
<version>1.2.0</version>
</dependency>
包括建议的包
Azure 管理库需要 TokenCredential
用于身份验证的实现和 HttpClient
HTTP 客户端的实现。
Azure 标识 和 Azure Core Netty HTTP 包提供默认实现。
Authentication
默认情况下,Azure Active Directory 令牌身份验证取决于以下环境变量的正确配置。
AZURE_CLIENT_ID
用于 Azure 客户端 ID。AZURE_TENANT_ID
用于 Azure 租户 ID。AZURE_CLIENT_SECRET
或AZURE_CLIENT_CERTIFICATE_PATH
,用于客户端机密或客户端证书。
此外,可以通过环境变量配置 AZURE_SUBSCRIPTION_ID
Azure 订阅 ID。
使用上述配置, azure
可以使用以下代码对客户端进行身份验证:
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
.build();
RecoveryServicesBackupManager manager = RecoveryServicesBackupManager
.authenticate(credential, profile);
示例代码假定全局 Azure。 否则,请更改 AzureEnvironment.AZURE
变量。
有关更多选项,请参阅 身份验证 。
关键概念
有关 Azure 管理库的设计和关键概念的一般介绍,请参阅 API 设计。
示例
OffsetDateTime scheduleDateTime = OffsetDateTime.parse(
OffsetDateTime.now(Clock.systemUTC())
.withNano(0).withMinute(0).withSecond(0)
.plusDays(1).format(DateTimeFormatter.ISO_INSTANT));
List<SubProtectionPolicy> lstSubProtectionPolicy = Arrays.asList(
new SubProtectionPolicy()
.withPolicyType(PolicyType.FULL)
.withSchedulePolicy(
new SimpleSchedulePolicy()
.withScheduleRunFrequency(ScheduleRunType.WEEKLY)
.withScheduleRunDays(Arrays.asList(DayOfWeek.SUNDAY, DayOfWeek.TUESDAY))
.withScheduleRunTimes(Arrays.asList(scheduleDateTime)))
.withRetentionPolicy(
new LongTermRetentionPolicy()
.withWeeklySchedule(
new WeeklyRetentionSchedule()
.withDaysOfTheWeek(Arrays.asList(DayOfWeek.SUNDAY, DayOfWeek.TUESDAY))
.withRetentionTimes(Arrays.asList(scheduleDateTime))
.withRetentionDuration(
new RetentionDuration()
.withCount(2)
.withDurationType(RetentionDurationType.WEEKS)))
.withMonthlySchedule(
new MonthlyRetentionSchedule()
.withRetentionScheduleFormatType(RetentionScheduleFormat.WEEKLY)
.withRetentionScheduleWeekly(
new WeeklyRetentionFormat()
.withDaysOfTheWeek(Arrays.asList(DayOfWeek.SUNDAY))
.withWeeksOfTheMonth(Arrays.asList(WeekOfMonth.SECOND)))
.withRetentionTimes(Arrays.asList(scheduleDateTime))
.withRetentionDuration(
new RetentionDuration()
.withCount(1)
.withDurationType(RetentionDurationType.MONTHS)))
.withYearlySchedule(
new YearlyRetentionSchedule()
.withRetentionScheduleFormatType(RetentionScheduleFormat.WEEKLY)
.withMonthsOfYear(Arrays.asList(MonthOfYear.JANUARY, MonthOfYear.JUNE, MonthOfYear.DECEMBER))
.withRetentionScheduleWeekly(
new WeeklyRetentionFormat()
.withDaysOfTheWeek(Arrays.asList(DayOfWeek.SUNDAY))
.withWeeksOfTheMonth(Arrays.asList(WeekOfMonth.LAST)))
.withRetentionTimes(Arrays.asList(scheduleDateTime))
.withRetentionDuration(
new RetentionDuration()
.withCount(1)
.withDurationType(RetentionDurationType.YEARS)))),
new SubProtectionPolicy()
.withPolicyType(PolicyType.DIFFERENTIAL)
.withSchedulePolicy(
new SimpleSchedulePolicy()
.withScheduleRunFrequency(ScheduleRunType.WEEKLY)
.withScheduleRunDays(Arrays.asList(DayOfWeek.FRIDAY))
.withScheduleRunTimes(Arrays.asList(scheduleDateTime)))
.withRetentionPolicy(
new SimpleRetentionPolicy()
.withRetentionDuration(
new RetentionDuration()
.withCount(8)
.withDurationType(RetentionDurationType.DAYS))),
new SubProtectionPolicy()
.withPolicyType(PolicyType.LOG)
.withSchedulePolicy(new LogSchedulePolicy().withScheduleFrequencyInMins(60))
.withRetentionPolicy(
new SimpleRetentionPolicy()
.withRetentionDuration(
new RetentionDuration()
.withCount(7)
.withDurationType(RetentionDurationType.DAYS))));
vault = recoveryServicesManager.vaults()
.define(vaultName)
.withRegion(REGION)
.withExistingResourceGroup(resourceGroupName)
.withSku(new Sku().withName(SkuName.RS0).withTier("Standard"))
.withProperties(new VaultProperties()
.withPublicNetworkAccess(PublicNetworkAccess.ENABLED)
.withRestoreSettings(new RestoreSettings()
.withCrossSubscriptionRestoreSettings(
new CrossSubscriptionRestoreSettings()
.withCrossSubscriptionRestoreState(CrossSubscriptionRestoreState.ENABLED))))
.create();
protectionPolicyResource = recoveryServicesBackupManager.protectionPolicies()
.define(policyName)
.withRegion(REGION)
.withExistingVault(vaultName, resourceGroupName)
.withProperties(
new AzureVmWorkloadProtectionPolicy()
.withWorkLoadType(WorkloadType.SQLDATA_BASE)
.withSettings(new Settings().withTimeZone("Pacific Standard Time").withIssqlcompression(false))
.withSubProtectionPolicy(lstSubProtectionPolicy)
)
.create();
疑难解答
后续步骤
贡献
有关参与此存储库的详细信息,请参阅 参与指南。
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com 。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 在所有存储库中执行此操作一次。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。