コンテンツにスキップ
Subako Docs
日本語
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

Package とバージョン

Bundle の形式、バージョン、アップロード。

Bundle

Package は gzip で圧縮した tar としてアップロードします。tar の最上位には次のものだけを置きます。

  • subako-package.json
  • module.wasm
  • assets/
    • templates/
      • report.typ
    • logo.png
エントリー
subako-package.json Manifest。必須で、最大 256 KiB。
module.wasm WASI preview 1 向けにビルドした Module。必須。ABI を参照してください。
assets/ 任意。Module が /package/<path> から読み取り専用で読むファイルです。通常のファイル (シンボリックリンクは不可) を最大 10,000 個まで置けます。各 Path は最大 1,024 バイトです。

Bundle 全体のサイズは、圧縮した状態でも展開した状態でも最大 64 MiB です。最上位にこれ以外のエントリー (README、.DS_Store、macOS の ._ ファイルなど) があると拒否されます。テンプレートの package.sh が COPYFILE_DISABLE=1 tar --format=ustar でまとめるのはそのためです。

Manifest

{
  "abi": 1,
  "name": "orders",
  "description": "Looks orders up, and cancels them."
}
フィールド
abi 1。Subako が実行する唯一の ABI です。
name Package の名前。小文字の英字、数字、- からなる 1 から 32 文字です。Grant では、別の名前を指定しない限りこれが Grant の名前になります。
description 最大 1,024 文字。Package を選ぶ人に表示されます。

Manifest には Tool を書きません。Package のアップロード時に Subako が Module に問い合わせるので、Tool の一覧は常に Module が実際に提供しているものと一致します。

バージョン

アップロードするたびに新しいバージョンができます。番号は 1 から順に振られ、一度できたバージョンの中身は変わりません。修正をアップロードすると次の番号のバージョンが追加され、それをどこで使うかは Grant の設定で決まります。

  • Package の最新バージョンを Grant している Agent のバージョンでは、これから開始する Session で新しいバージョンが使われます。
  • 特定のバージョンに固定している Agent のバージョンでは、新しい Agent のバージョンで別のバージョンを指定するまで、そのバージョンのままです。
  • どちらの場合も、すでに実行中の Session は開始時のバージョンを使い続けます。

コンソールの Package のページでは、各バージョンについて、追加日時、Module のサイズと SHA-256、Asset、Tool とその Parameter や Schema を確認できます。

Package のページ: anydoc のバージョン 1、そのビルドと Tool

その他の操作からは、Package の名前の代わりに表示する表示名を付けたり、Package をすべてのバージョンごと削除したりできます。公開済みの Agent のバージョンが Package を Grant している間や、Session が Package を使っている間は削除できません。

アップロード

Function › Package をアップロードから、Archive をアップロードするか、Manifest と Module (と Asset) を別々のファイルとして選びます。別々のファイルは、ブラウザーが 1 つにまとめます。次のバージョンは、Package のページの 新しいバージョンをアップロード から追加します。

Function ページ: Workspace の Package とその最新バージョン

subako function create dist/orders.tar.gz             # バージョン 1
subako function push <function-id> dist/orders.tar.gz # 次のバージョン
subako function list

どちらのコマンドも、Archive の代わりにディレクトリを渡すと、その中身をすべてまとめてアップロードします。そのため、ディレクトリには Bundle のエントリーだけを置いてください。

curl -X POST https://api.us.cloud.subako.ai/v1/functions \
  -H "Authorization: Bearer $SUBAKO_API_KEY" \
  -H "Content-Type: application/gzip" \
  --data-binary @dist/orders.tar.gz

curl -X POST https://api.us.cloud.subako.ai/v1/functions/$FUNCTION_ID/versions \
  -H "Authorization: Bearer $SUBAKO_API_KEY" \
  -H "Content-Type: application/gzip" \
  --data-binary @dist/orders.tar.gz

API key には Function › 管理 の権限が必要です。どちらも、作成したバージョンを Module が列挙した Tool とともに返します。詳細は API リファレンスを参照してください。

アップロードが拒否された場合は、その理由が示されます。たとえば、Bundle に置けないエントリーがある、Subako が提供しない import を Module が必要としている、Module が tools/list に応答しない、Tool の名前や Schema が決まりに違反している、などです。

Organization が持てる Package の数には、Plan ごとに上限があります。バージョンの数は数えません。詳しくは Plan と使用量を参照してください。

このページは役に立ちましたか?