Skip to content

sacloud/apprun-api-go

Repository files navigation

sacloud/apprun-api-go

Go Reference Tests Go Report Card

Go言語向けのさくらのクラウド AppRun APIライブラリ

AppRun APIドキュメント: https://manual.sakura.ad.jp/sakura-apprun-api/spec.html

概要

sacloud/apprun-api-goはさくらのクラウド AppRun APIをGo言語から利用するためのAPIライブラリです。

利用イメージ:

package main

import (
	"context"
	"fmt"

	"github.com/sacloud/apprun-api-go"
	v1 "github.com/sacloud/apprun-api-go/apis/v1"
)

func main() {
	// デフォルトでusacloud互換プロファイル or 環境変数(SAKURACLOUD_ACCESS_TOKEN{_SECRET})が利用される
	client := &apprun.Client{}

	ctx := context.Background()

	// アプリケーションを作成
	appOp := apprun.NewApplicationOp(client)
	application, err := appOp.Create(ctx, &v1.PostApplicationBody{
		Name:           "example-app1",
		TimeoutSeconds: 100,
		Port:           80,
		MinScale:       0,
		MaxScale:       1,
		Components: []v1.PostApplicationBodyComponent{
			{
				Name:      "component1",
				MaxCpu:    "0.1",
				MaxMemory: "256Mi",
				DeploySource: v1.PostApplicationBodyComponentDeploySource{
					ContainerRegistry: &v1.PostApplicationBodyComponentDeploySourceContainerRegistry{
						Image: "apprun-test.sakuracr.jp/apprun/test1:latest",
					},
				},
				Probe: &v1.PostApplicationBodyComponentProbe{
					HttpGet: &v1.PostApplicationBodyComponentProbeHttpGet{
						Path: "/",
						Port: 80,
					},
				},
			},
		},
	})
	if err != nil {
		panic(err)
	}

	// アプリケーションバージョンを取得
	versionOp := apprun.NewVersionOp(client)
	versions, err := versionOp.List(ctx, *application.Id, &v1.ListApplicationVersionsParams{})
	if err != nil {
		panic(err)
	}

	// アプリケーションの削除
	defer func() {
		if err := appOp.Delete(ctx, *application.Id); err != nil {
			panic(err)
		}
	}()

	v := (*versions.Data)[0]
	fmt.Println(*v.Name)
}

⚠️ v1.0に達するまでは互換性のない形で変更される可能性がありますのでご注意ください。

License

apprun-api-go Copyright (C) 2022-2023 The sacloud/apprun-api-go authors. This project is published under Apache 2.0 License.