高火力 DOKはさくらインターネットの提供するGPUコンテナサービスです。DockerイメージをGPUを使って実行します。
高火力 DOKではAPIが公開されているので、操作しやすくするためのSDKを「野良」で作成し始めました。Pythonでも良いのですが、せっかくなら別言語ということで、JavaScript/TypeScriptで作成しています。
今回はタスクの作成とキャンセル、削除ができるようになったので使い方を解説します。
必要な情報
SDKを利用する際には、さくらのクラウドのアクセストークンとシークレットアクセストークンが必要です。どちらもさくらのクラウドのAPIキーの中で作成できます。
インストール
SDKのインストールは npm
で行います。
npm install @goofmint/dok-sdk
初期化
先ほど作成したアクセストークンとシークレットアクセストークンで初期化します。
import DOK from '@goofmint/dok-sdk';
const dok = new DOK({
accessToken: 'your_access_token',
accessTokenSecret: 'your_access_token_secret',
});
タスクの作成
新しくタスクを作成する場合には task
メソッドを使います。
const task = await dok.task();
必要な情報を追加する
タスクに対して、コンテナやタグなどを追加します。
task
.set('name', 'test-delete-task')
.set('tags', ['test', 'task']);
const container = await client.container();
container
.set('image', 'your_container_image_name')
.set('plan', 'v100-32gb')
.set('environment', {
TEST: 'test',
});
task.containers = [container];
後は save
メソッドで保存できます。
await task.save();
タスクのキャンセル
作成した、または取得したタスクの実行をキャンセルする際には cancel
メソッドを使います。
await task.cancel();
タスクの削除
タスクを削除する際には delete
メソッドを使います。
await task.delete();
コード
コードはGitHubで公開しています。ライセンスはMIT Licenseです。
まとめ
高火力 DOKのAPIでは、タスクの作成やキャンセルなども行えます。Webサービスの中でタスクを作成したり、その完了を監視するようなこともできるでしょう。
高火力 DOK自体はバッチ処理など、非同期処理に向いたサービスになります。都度管理画面をチェックしたりするのは面倒なので、APIを使うのが便利そうです。