Biblioteca de clientes do Azure Resource Manager RecoveryServicesBackup para Java – versão 1.2.0

Biblioteca de clientes do Azure Resource Manager RecoveryServicesBackup para Java.

Este pacote contém o SDK do Microsoft Azure para RecoveryServicesBackup Management SDK. Abra as Especificações da API 2.0 para o serviço de Backup do Azure RecoveryServices. Pacote de marcas de pacote-2023-04. Para obter documentação sobre como usar esse pacote, consulte Bibliotecas de Gerenciamento do Azure para Java.

Adoraríamos ouvir seus comentários

Estamos sempre trabalhando para melhorar nossos produtos e a maneira como nos comunicamos com nossos usuários. Então adoraríamos aprender o que está funcionando e como podemos fazer melhor.

Caso ainda não tenha feito isso, reserve alguns minutos para concluir esta breve pesquisa que reunimos.

Obrigado antecipadamente por sua colaboração. Agradecemos muito o seu tempo!

Documentação

Várias documentações estão disponíveis para ajudá-lo a começar

Introdução

Pré-requisitos

Adicionando o pacote ao seu produto

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-recoveryservicesbackup</artifactId>
    <version>1.2.0</version>
</dependency>

As Bibliotecas de Gerenciamento do Azure exigem uma TokenCredential implementação para autenticação e uma HttpClient implementação para o cliente HTTP.

Os pacotes HTTP do Azure Identity e do Azure Core Netty fornecem a implementação padrão.

Autenticação

Por padrão, a autenticação de token do Azure Active Directory depende da configuração correta das variáveis de ambiente a seguir.

  • AZURE_CLIENT_ID para a ID do cliente do Azure.
  • AZURE_TENANT_ID para a ID do locatário do Azure.
  • AZURE_CLIENT_SECRET ou AZURE_CLIENT_CERTIFICATE_PATH para o segredo do cliente ou certificado do cliente.

Além disso, a ID da assinatura do Azure pode ser configurada por meio da AZURE_SUBSCRIPTION_ID variável de ambiente.

Com a configuração acima, azure o cliente pode ser autenticado usando o seguinte código:

AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
    .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
    .build();
RecoveryServicesBackupManager manager = RecoveryServicesBackupManager
    .authenticate(credential, profile);

O código de exemplo pressupõe que o Azure global. Caso contrário, altere AzureEnvironment.AZURE a variável.

Confira Autenticação para obter mais opções.

Principais conceitos

Confira Design de API para obter introdução geral sobre design e principais conceitos sobre bibliotecas de gerenciamento do Azure.

Exemplos

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();

Exemplos e snippets de código

Solução de problemas

Próximas etapas

Participante

Para obter detalhes sobre como contribuir para esse repositório, consulte o guia de contribuição.

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Impressões