sacloud

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

README

sacloud-sdk-go

Go Version License

さくらのクラウド Go SDK

概要

sacloud-sdk-goは、さくらのクラウドの各種サービスをGo言語から利用するためのSDK群をまとめたモノレポジトリです。

このリポジトリには、さくらのクラウドの各サービスに対応したAPIクライアントライブラリと、それらを利用した高レベルなサービスライブラリが含まれています。

[!WARNING] 本プロジェクトの一部パッケージはv1.0に達するまでの間、互換性のない形で変更される可能性があります。

構成

APIクライアントライブラリ (api/)

さくらのクラウド各サービスの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
高レベルサービスライブラリ (service/)

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
内部パッケージ (internal/)

SDKの内部で使用される共有パッケージです。Goのinternal制約により、外部モジュールから直接importできません。

パッケージ 説明
internal/api-client APIクライアントの共通実装
internal/go-http HTTP通信の共通実装
internal/services サービスレイヤーの共通実装
共通パッケージ (common/)

SDK外からも利用可能な共有パッケージです。

パッケージ 説明 importパス
common/packages 汎用パッケージ群 github.com/sacloud/sacloud-sdk-go/common/packages
common/saclient クライアント認証・設定の共通実装 github.com/sacloud/sacloud-sdk-go/common/saclient
SRNパッケージ (srn/)

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を参照してください。

簡単な使用例 (IaaS)
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=production
環境変数による設定
export SAKURA_SERVICE_PRINCIPAL_ID=sub
export SAKURA_SERVICE_PRINCIPAL_KEY_KID=kid
export SAKURA_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----...

その他の設定項目(リトライ、エンドポイント上書き、ゾーン指定など)については common/saclient/README.md を参照してください。

関連プロジェクト

開発

前提条件
  • 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.

Documentation

Index

Constants

View Source
const Version = "0.2.0"

Variables

This section is empty.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
api
addon/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
apigw/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
apprun/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
eventbus/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
iaas
Package sacloud さくらのクラウド API ライブラリ
Package sacloud さくらのクラウド API ライブラリ
iaas/helper/power
Package power サーバやアプライアンスの電源操作ユーティリティ
Package power サーバやアプライアンスの電源操作ユーティリティ
iaas/internal/define
Package define .
Package define .
iaas/internal/dsl
Package dsl コード生成用の定義DSL
Package dsl コード生成用の定義DSL
iaas/ostype
Package ostype is define OS type of SakuraCloud public archive
Package ostype is define OS type of SakuraCloud public archive
iaas/test
Package test iaas.xxxAPIのテストのためのパッケージ
Package test iaas.xxxAPIのテストのためのパッケージ
iam
iam/apis/group
Package group provides the GroupAPI that wraps the generated v1 client.
Package group provides the GroupAPI that wraps the generated v1 client.
iam/apis/idpolicy
Package idpolicy provides the IdPolicyAPI that wraps the generated v1 client.
Package idpolicy provides the IdPolicyAPI that wraps the generated v1 client.
iam/apis/user
Package user provides the UserAPI that wraps the generated v1 client.
Package user provides the UserAPI that wraps the generated v1 client.
iam/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
iam/doc command
kms
kms/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
monitoring-suite/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
networking-suite/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
nosql/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
object-storage/apis/v2
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
security-control/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
simplemq/apis/v1/message
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
simplemq/apis/v1/queue
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
workflows/apis/v1
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
common
packages/cidr
Package cidr is a collection of assorted utilities for computing network and host addresses within network ranges.
Package cidr is a collection of assorted utilities for computing network and host addresses within network ranges.
packages/size
Package size さくらのクラウドでのサイズ(MiB/GiB)
Package size さくらのクラウドでのサイズ(MiB/GiB)
internal
services/examples
Package examples
Package examples
service

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL