你当前正在访问 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_SECRETAZURE_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 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。

曝光数