さくらのクラウド「クラウドHSM」APIのGoクライアントライブラリ
このライブラリは、さくらのクラウド「クラウドHSM」APIをGo言語から利用するためのクライアントです。 OpenAPI仕様から自動生成された型安全なAPIクライアントと、それをラップして使い勝手を向上させたクライアントを提供します。
Warning
v1.0に達するまでは互換性のない形で変更される可能性がありますのでご注意ください。
go get github.com/sacloud/cloudhsm-api-goSDKを利用開始するにはさくらのクラウド「クラウドHSM」自体を利用開始する必要があります。執筆時点ではさくらのクラウドの利用申請とは別途クラウドHSMの利用申請も必要です。申請手順の詳細に関してはクラウドHSMマニュアルをご参照ください。
APIを実行するには認証が必要です。インタラクティブな環境の場合おすすめは usacloud を使って設定ファイルを作成することです。たとえば
usacloud config create --name is1aにて作成したプロファイル is1a があるとすると、SDKとしては、
import (
"github.com/sacloud/cloudhsm-api-go"
"github.com/sacloud/saclient-go"
)
var theClient saclient.Client
func main() {
_ = theClient.SetEnviron([]string{"SAKURA_PROFILE=is1a"})
client, err := cloudhsm.NewClient(&theClient)
// 以下略
}のようにして読み込むことができます。
一方でCI環境のようにファイルに書き出すのが適切ではない場合、環境変数経由で
import (
"os"
"github.com/sacloud/cloudhsm-api-go"
"github.com/sacloud/saclient-go"
)
var theClient saclient.Client
func main() {
_ = theClient.SetEnviron([]string{
"SAKURA_ZONE=is1a",
"SAKURA_SERVICE_PRINCIPAL_ID=something",
// 他、 os.Environ()から必要な環境変数を追加
})
client, err := cloudhsm.NewClient(&theClient)
// 以下略
}のように指定できます。
package main
import (
"context"
"github.com/sacloud/cloudhsm-api-go"
v1 "github.com/sacloud/cloudhsm-api-go/apis/v1"
)
func Logic(ctx context.Context, client *v1.Client) {
// 例: ライセンス一覧取得
licenses, err := cloudhsm.NewLicenseOp(client).List(ctx)
if err != nil {
// エラーハンドリング
}
}APIの詳細はGoDocやapis/v1/配下の型定義を参照してください。
openapi/openapi.jsonはKMS/SecretManager/CloudHSM APIからダウンロードしたものを一部加工しています。
ビルドやテストはMakefile経由で実行できます。
make
make testCopyright (C) 2022-2025 The sacloud/cloudhsm-api-go Authors. このプロジェクトはApache 2.0 Licenseの下で公開されています。