さくらのクラウド Go SDK
sacloud-sdk-goは、さくらのクラウドの各種サービスをGo言語から利用するためのSDK群をまとめたモノレポジトリです。
このリポジトリには、さくらのクラウドの各サービスに対応したAPIクライアントライブラリと、それらを利用した高レベルなサービスライブラリが含まれています。
Warning
本プロジェクトの一部パッケージはv1.0に達するまでの間、互換性のない形で変更される可能性があります。
さくらのクラウド各サービスのREST APIを操作するための低レベルクライアントライブラリです。
| パッケージ | 説明 | importパス |
|---|---|---|
api/iaas |
IaaS API (サーバー、ディスク、ネットワークなど) | github.com/sacloud/sacloud-sdk-go/api/iaas |
api/webaccel |
ウェブアクセラレータ API | github.com/sacloud/sacloud-sdk-go/api/webaccel |
api/iam |
IAM API (認証・認可) | github.com/sacloud/sacloud-sdk-go/api/iam |
api/addon |
Add-on API (データレーク、WAFなど) | github.com/sacloud/sacloud-sdk-go/api/addon |
api/apigw |
API Gateway API | github.com/sacloud/sacloud-sdk-go/api/apigw |
api/apprun |
AppRun API | github.com/sacloud/sacloud-sdk-go/api/apprun |
api/apprun-dedicated |
AppRun Dedicated API | github.com/sacloud/sacloud-sdk-go/api/apprun-dedicated |
api/cloudhsm |
CloudHSM API | github.com/sacloud/sacloud-sdk-go/api/cloudhsm |
api/dedicated-storage |
専用ストレージ API | github.com/sacloud/sacloud-sdk-go/api/dedicated-storage |
api/eventbus |
EventBus API | github.com/sacloud/sacloud-sdk-go/api/eventbus |
api/kms |
Key Management Service API | github.com/sacloud/sacloud-sdk-go/api/kms |
api/monitoring-suite |
監視サービス API | github.com/sacloud/sacloud-sdk-go/api/monitoring-suite |
api/networking-suite |
ネットワークスイート API | github.com/sacloud/sacloud-sdk-go/api/networking-suite |
api/nosql |
NoSQL API | github.com/sacloud/sacloud-sdk-go/api/nosql |
api/object-storage |
オブジェクトストレージ API | github.com/sacloud/sacloud-sdk-go/api/object-storage |
api/secretmanager |
Secret Manager API | github.com/sacloud/sacloud-sdk-go/api/secretmanager |
api/security-control |
セキュリティコントロール API | github.com/sacloud/sacloud-sdk-go/api/security-control |
api/service-endpoint-gateway |
Service Endpoint Gateway API | github.com/sacloud/sacloud-sdk-go/api/service-endpoint-gateway |
api/simple-notification |
シンプル通知 API | github.com/sacloud/sacloud-sdk-go/api/simple-notification |
api/simplemq |
SimpleMQ API | github.com/sacloud/sacloud-sdk-go/api/simplemq |
api/workflows |
Workflows API | github.com/sacloud/sacloud-sdk-go/api/workflows |
APIクライアントライブラリをラップし、より使いやすいインターフェースを提供する高レベルライブラリです。
| パッケージ | 説明 | importパス |
|---|---|---|
service/iaas |
IaaS向け高レベルAPI | github.com/sacloud/sacloud-sdk-go/service/iaas |
service/webaccel |
ウェブアクセラレータ高レベルAPI | github.com/sacloud/sacloud-sdk-go/service/webaccel |
SDKの内部で使用される共有パッケージです。Goのinternal制約により、外部モジュールから直接importできません。
| パッケージ | 説明 |
|---|---|
internal/api-client |
APIクライアントの共通実装 |
internal/go-http |
HTTP通信の共通実装 |
internal/services |
サービスレイヤーの共通実装 |
SDK外からも利用可能な共有パッケージです。
| パッケージ | 説明 | importパス |
|---|---|---|
common/packages |
汎用パッケージ群 | github.com/sacloud/sacloud-sdk-go/common/packages |
common/saclient |
クライアント認証・設定の共通実装 | github.com/sacloud/sacloud-sdk-go/common/saclient |
Sakura resource name(SRN)を扱うパッケージ。
| パッケージ | 説明 | importパス |
|---|---|---|
srn |
SRN 構造体と関連メソッドを提供 | github.com/sacloud/sacloud-sdk-go/srn |
このリポジトリは単一のGoモジュールです。
go get github.com/sacloud/sacloud-sdk-go# IAM APIクライアントの場合
go get github.com/sacloud/sacloud-sdk-go/api/iam
# IaaS APIクライアントの場合
go get github.com/sacloud/sacloud-sdk-go/api/iaas
# 高レベルサービスライブラリ
go get github.com/sacloud/sacloud-sdk-go/service/iaas各パッケージの詳しい使い方は、それぞれのディレクトリにある README.mdを参照してください。
package main
import (
"context"
"log"
"github.com/sacloud/sacloud-sdk-go/api/iaas"
"github.com/sacloud/sacloud-sdk-go/common/saclient"
)
func main() {
// クライアント作成 (環境変数やプロファイルから自動設定)
var sa saclient.Client
client := iaas.NewClientFromSaclient(&sa)
// サーバー一覧取得
ctx := context.Background()
servers, err := iaas.NewServerOp(client).Find(ctx, &iaas.FindServerRequest{})
if err != nil {
log.Fatal(err)
}
for _, server := range servers.Servers {
log.Printf("Server: %s (%s)", server.Name, server.ID)
}
}APIを利用するには、さくらのクラウドの認証情報が必要です。common/saclient が環境変数、プロファイル、コマンドラインフラグなどを統合的に読み込みます。
主な方法は次の 2 つです。
usacloudプロファイルの利用
インタラクティブな環境では、usacloudを使用して設定ファイルを作成することをおすすめします。
# usacloudでプロファイル作成
usacloud config create --name production
# 作成したプロファイルを使用
export SAKURA_PROFILE=productionexport SAKURA_SERVICE_PRINCIPAL_ID=sub
export SAKURA_SERVICE_PRINCIPAL_KEY_KID=kid
export SAKURA_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----...その他の設定項目(リトライ、エンドポイント上書き、ゾーン指定など)については common/saclient/README.md を参照してください。
- usacloud: さくらのクラウド用CLIツール
- terraform-provider-sakuracloud: Terraformプロバイダー
- libsacloud: 本SDKの前身となるライブラリ(v2系まで)
- Go 1.25 以上
- Make
各サブディレクトリで個別にビルド・テストが可能です。
# IaaS APIクライアントのテスト
cd api/iaas
make test
# 全パッケージのテストは各ディレクトリで順次実行
cd api/iaas && make test
cd api/webaccel && make test
# ...ルートには横断的な Makefile はないため、以下のように各ディレクトリで順次実行してください。
for d in api/*/ service/*/ common/*/ internal/*/ srn; do
if [ -f "$d/Makefile" ]; then
make -C "$d" test
fi
done各 Makefile で利用できる主なターゲットです。
| ターゲット | 内容 |
|---|---|
make test |
ユニットテストを実行 |
make testacc |
受け入れテストを実行 |
make build |
ビルド(single.mkをincludeしているパッケージ) |
make fmt |
gofmt でフォーマット |
make goimports |
gosimportsでimport整理 |
make lint |
Go / 文章のlint |
make set-license |
ライセンスヘッダーを追加・更新 |
make go-licenses-check |
依存ライブラリのライセンスをチェック |
make vulncheck |
govulncheck で既知の脆弱性をチェック |
sacloud/sacloud-sdk-go Copyright (C) 2026- The sacloud/sacloud-sdk-go Authors.
This project is published under Apache 2.0 License.