Tablestore SDK for Go は、WideColumn モデル、TimeSeries モデル、および Timeline モデルをサポートしています。
クイックスタート
環境をセットアップし、Tablestore SDK for Go をインストールして、クライアントを初期化します。
前提条件
Go 1.4 以降。 公式 Go ダウンロードページ から Go をダウンロードしてください。
GoLand や Go 拡張機能付きの Visual Studio Code などの Go IDE。
SDK のインストール
プロジェクトディレクトリで go mod init <DIRNAME> コマンドを実行して go.mod ファイルを生成します。その後、以下のコマンドを実行して Tablestore SDK for Go をインストールします。
<DIRNAME> はプロジェクトディレクトリのパスです。
go get github.com/aliyun/aliyun-tablestore-go-sdk/tablestore
Tablestore SDK for Go リポジトリの sample フォルダに、各データモデルのサンプルプログラムが含まれています。
アクセス認証情報の構成
Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey を作成 し、以下のように環境変数に AccessKey を設定します。環境変数に AccessKey を設定することで、コード内に機密情報をハードコードする必要がなくなり、セキュリティが向上します。
構成が完了したら、開発環境(IDE、CLI、その他のデスクトップアプリケーション、バックグラウンドサービスなど)を再起動またはリフレッシュして、最新のシステム環境変数を読み込む必要があります。その他のアクセス認証情報の種類については、「アクセス認証情報の構成」をご参照ください。
Linux
-
以下のコマンドを実行して、環境変数の設定を
~/.bashrcファイルに追加します。echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc -
以下のコマンドを実行して、変更を適用します。
source ~/.bashrc -
以下のコマンドを実行して、環境変数が有効になっていることを確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
macOS
-
ターミナルで以下のコマンドを実行して、デフォルトのシェルタイプを確認します。
echo $SHELL -
デフォルトのシェルタイプに応じて、以下の操作を実行します。
Zsh
-
以下のコマンドを実行して、環境変数の設定を
~/.zshrcファイルに追加します。echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc -
以下のコマンドを実行して、変更を適用します。
source ~/.zshrc -
以下のコマンドを実行して、環境変数が有効になっていることを確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
Bash
-
以下のコマンドを実行して、環境変数の設定を
~/.bash_profileファイルに追加します。echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile -
以下のコマンドを実行して、変更を適用します。
source ~/.bash_profile -
以下のコマンドを実行して、環境変数が有効になっていることを確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
-
Windows
CMD
-
コマンドプロンプト (CMD) で以下のコマンドを実行して、環境変数を設定します。
setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET" -
CMD を再起動し、以下のコマンドを実行して、環境変数が有効になっていることを確認します。
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
-
PowerShell で以下のコマンドを実行します。
[Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) -
以下のコマンドを実行して、環境変数が有効になっていることを確認します。
[Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
クライアントの初期化
クライアントを初期化した後、ご利用のインスタンス内のデータテーブルと時系列テーブルを一覧表示して、接続を確認します。
新規インスタンスでは、パブリックネットワークアクセスがデフォルトで無効になっています。パブリックネットワーク経由でインスタンスリソースにアクセスするには、ご利用のインスタンスの ネットワーク管理 でパブリックネットワークアクセスを有効にしてください。
WideColumn
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// yourInstanceName: ご利用のインスタンス名を入力してください
instanceName := "yourInstanceName"
// yourEndpoint: ご利用のインスタンスのエンドポイントを入力してください
endpoint := "yourEndpoint"
// 環境変数から AccessKey ID および AccessKey Secret を取得します
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
// Tablestore クライアントを初期化します
client := tablestore.NewClient(endpoint, instanceName, accessKeyId, accessKeySecret)
// インスタンス内のデータテーブルを一覧表示し、コンソールに出力します
tables, err := client.ListTable()
if err != nil {
fmt.Println("Failed to list table")
} else {
for _, table := range tables.TableNames {
fmt.Println(table)
}
}
}
TimeSeries
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// yourInstanceName: ご利用のインスタンス名を入力してください
instanceName := "yourInstanceName"
// yourEndpoint: ご利用のインスタンスのエンドポイントを入力してください
endpoint := "yourEndpoint"
// 環境変数から AccessKey ID および AccessKey Secret を取得します
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
// Tablestore クライアントを初期化します
client := tablestore.NewTimeseriesClient(endpoint, instanceName, accessKeyId, accessKeySecret)
// インスタンス内の時系列テーブルを一覧表示し、コンソールに出力します
timeseriesTables, err := client.ListTimeseriesTable()
if err != nil {
fmt.Println("Failed to list table")
} else {
for _, timeseriesTablesMeta := range timeseriesTables.GetTimeseriesTableMeta() {
fmt.Println(timeseriesTablesMeta.GetTimeseriesTableName())
}
}
}
バージョン互換性
最新バージョンは 1.17.x です。すべての新バージョンは、以前のバージョンと下位互換性があります。
SDK の更新履歴については、「Tablestore SDK for Go のバージョン履歴」をご参照ください。
よくある質問
関連ドキュメント
Tablestore のエラー処理については、「エラー処理」をご参照ください。