安裝SDK
在Maven專案中添加依賴:
<dependency>
<groupId>com.aliyun.datahub</groupId>
<artifactId>aliyun-sdk-datahub</artifactId>
<version>2.29.1</version>
</dependency>JDK:使用1.8及以上版本。
如果API開啟了密鑰認證,您還需要在工程中配置相應的Access Key和Secret Key,請參考下文身分識別驗證。
身分識別驗證
背景資訊
AccessKey(簡稱AK)是阿里雲提供給阿里雲使用者的存取金鑰,用於訪問阿里雲OpenAPI時的身分識別驗證。AccessKey包括AccessKey ID和AccessKey Secret,需妥善保管。AK如果泄露,會威脅該帳號下所有資源的安全。訪問阿里雲OpenAPI時,如果在代碼中寫入程式碼明文AK,容易因代碼倉庫許可權管理不當造成AK泄露。
Alibaba Cloud Credentials是阿里雲為阿里雲開發人員使用者提供的身份憑證管理工具。配置了Credentials預設憑據鏈後,訪問阿里雲OpenAPI時,您無需在代碼中寫入程式碼明文AK,可有效保證您帳號下雲資源的安全。
前提條件
已擷取RAM使用者帳號的AccessKey ID和AccessKey Secret。相關操作,請參見查看RAM使用者的AccessKey資訊。
- 重要
阿里雲帳號(即主帳號)的AccessKey泄露會威脅該帳號下所有資源的安全。為保證帳號安全,強烈建議您為RAM使用者建立AccessKey,非必要情況下請勿為阿里雲主帳號建立AccessKey。
RAM使用者的AccessKey Secret只能在建立AccessKey時顯示,建立完成後不支援查看。請在建立好AccessKey後,及時並妥善儲存AccessKey Secret。
已安裝阿里雲SDK Credentials工具。
Maven安裝方式(推薦使用Credentials最新版本):
<dependency> <groupId>com.aliyun</groupId> <artifactId>credentials-java</artifactId> <version>0.2.11</version> </dependency>JDK版本為1.7及以上。
配置方案
本文樣本的是通過配置環境變數方式,更多方式請訪問配置環境變數。
使用設定檔的方案時,請確保您系統中不存在環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。否則,設定檔將不生效。
阿里雲SDK支援通過定義ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環境變數來建立預設的訪問憑證。調用介面時,程式直接存取憑證,讀取您的存取金鑰(即AccessKey)並自動完成鑒權。
配置方法
配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
Linux和macOS系統配置方法。
執行以下命令:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret><access_key_id>需替換為已準備好的AccessKey ID,<access_key_secret>替換為AccessKey Secret。Windows系統配置方法。
建立環境變數檔案,添加環境變數
ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET,並寫入已準備好的AccessKey ID和AccessKey Secret。重啟Windows系統。
程式碼範例
注意事項
對於SDK版本升級由2.9版本升級上來的使用者:必須要注意setTimestampInms介面替換後,顯示將值乘以1000。
介面調用正常情況下,SDK只有
putRecords / putRecordsByShard和getRecords介面是需要進行頻繁調用進行資料讀寫的,其他的介面比如getTopic、getCursor、listShard等介面一般只有初始化時需要調用。Client初始化在專案工程中,可以有一個或者多個DatahubClient執行個體,DatahubClient執行個體可以並發使用。
不同包中的同名類遇到相同類名不同包路徑的情況,2.12版本使用的均為com.aliyun.datahub.client包中的類,其他包中的類是為了相容版本低於2.12的使用方式。例如:
// 2.12版本 com.aliyun.datahub.client.model.RecordSchema // 使用2.12之前版本SDK編寫的代碼,如果在升級SDK後無需修改代碼,則繼續使用此類型 com.aliyun.datahub.common.data.RecordSchema出現錯誤
Parse body failed, Offset: 0,嘗試將enableBinary參數設定為false。