Instale o SDK
Adicione a seguinte dependência ao seu projeto Maven:
<dependency>
<groupId>com.aliyun.datahub</groupId>
<artifactId>aliyun-sdk-datahub</artifactId>
<version>2.29.5</version>
</dependency>
JDK: Use a versão 1,8 ou superior.
Se a API exigir autenticação por chave, configure o AccessKey ID e o AccessKey Secret no seu projeto. Para mais informações, consulte Autenticação.
Autenticação
Contexto
O AccessKey (AK) é uma chave de acesso fornecida pela Alibaba Cloud para autenticar chamadas à OpenAPI. Ele consiste em um AccessKey ID e um AccessKey Secret. Mantenha ambos em sigilo.
O Alibaba Cloud Credentials é uma ferramenta de gerenciamento de credenciais para desenvolvedores da Alibaba Cloud. Configurar a cadeia padrão de provedores de credenciais permite chamar a OpenAPI da Alibaba Cloud sem codificar o AccessKey em texto simples. Isso ajuda a proteger seus recursos na nuvem.
Pré-requisitos
Obtenha o AccessKey ID e o AccessKey Secret de um usuário RAM. Para obter instruções, consulte Visualize the AccessKey information of a RAM user.
-
Importante
O vazamento do AccessKey da sua conta principal compromete todos os recursos associados a ela. Para proteger sua conta, crie um AccessKey para um usuário RAM e evite criar um para a conta principal, a menos que seja estritamente necessário.
O AccessKey Secret de um usuário RAM é exibido apenas no momento da criação do AccessKey e não pode ser recuperado posteriormente. Salve o AccessKey Secret em um local seguro imediatamente.
-
Instale a ferramenta Alibaba Cloud Credentials.
Para instalar com Maven (recomendamos usar a versão mais recente do Credentials):
<dependency> <groupId>com.aliyun</groupId> <artifactId>credentials-java</artifactId> <version>0.2.11</version> </dependency> Instale o JDK 1.7 ou superior.
Métodos de configuração
Este tópico usa variáveis de ambiente como exemplo. Para outros métodos de configuração, consulte Configure environment variables.
Ao usar um arquivo de configuração, verifique se as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET não estão definidas no sistema. Se estiverem, elas terão precedência sobre o arquivo de configuração.
Crie uma credencial de acesso padrão definindo as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. A aplicação usará essas variáveis automaticamente para autenticar as chamadas de API.
Configure variáveis de ambiente
Defina as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET.
-
Para sistemas Linux e macOS
Execute os seguintes comandos:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Substitua
<access_key_id>pelo seu AccessKey ID e<access_key_secret>pelo seu AccessKey Secret. -
Para sistemas Windows
Crie duas novas variáveis de ambiente:
ALIBABA_CLOUD_ACCESS_KEY_IDeALIBABA_CLOUD_ACCESS_KEY_SECRET. Defina os valores como seu AccessKey ID e AccessKey Secret, respectivamente.Reinicie o Windows.
Exemplo de código
Observações
Para usuários que atualizam do SDK v2.9: Ao substituir o método setTimestampInms, multiplique o valor do timestamp por 1.000.
Em condições normais de operação, apenas as APIs
putRecords / putRecordsByShardegetRecordssão chamadas frequentemente para leitura e escrita de dados. Outras APIs, comogetTopic,getCursorelistShard, geralmente são invocadas apenas durante a inicialização.Crie uma ou mais instâncias de DatahubClient no seu projeto. As instâncias de DatahubClient são thread-safe.
-
Se encontrar classes com o mesmo nome em pacotes diferentes, observe que a versão 2,12 e posteriores usam classes do pacote com.aliyun.datahub.client. As classes em outros pacotes são mantidas para compatibilidade com versões do SDK anteriores à 2,12. Por exemplo:
// Version 2.12 com.aliyun.datahub.client.model.RecordSchema // If your code was written with an SDK version earlier than 2.12 and you want to avoid code changes after upgrading, continue to use this type. com.aliyun.datahub.common.data.RecordSchema Se ocorrer o erro
Parse body failed, Offset: 0, tente definir o parâmetro enableBinary comofalse.