TenkaCloud Docs

既存パックを使う Preview

これは、他の誰かがすでに作成したパックを使うための、5 分で終わる主催者向けの手順です。パックを自分で書いたり公開したりする場合は、最初のパックのチュートリアルから始めてください。モデルの全体像は問題パックを、コマンドの正式な一覧は CLI リファレンスを参照してください。

前提条件

次のいずれかを用意してください。

  • パックの HTTPS Git URL と、実行対象となるイミュータブルな 40 桁 16 進の完全なコミット SHA。
  • ローカルのパックディレクトリ。パックが Git にピン留めされる前に、ローカルでリハーサルする場合に使います。

以下の CLI コマンドは、TenkaCloud リポジトリのチェックアウトから infrastructure ワークスペースを通して実行します。主催者コンソールで実際のイベントを作成してデプロイするまで、AWS 認証情報は不要です。

1. ピン留めした Git リビジョンをインストールする

イベントで使う場合は Git 形式を推奨します。sourceKind: "git"、リポジトリ URL、解決されたコミット、サブディレクトリ(あれば)、コンテンツダイジェストが packs-lock.json に記録されます。--commit の値は 40 桁 16 進の完全な SHA でなければなりません。ブランチ、タグ、HEAD、短縮ハッシュは意図的に拒否されます。

make pack-install ARGS="git https://github.com/example/acme-pack.git --commit <40-hex-commit-sha>"

期待される出力:

Pack installed: com.example.event-pack@1.0.0
  source: git
  digest: <sha256-content-digest>
  problems: 3

リハーサル用にローカルのパックディレクトリを渡された場合は、代わりにローカル形式でインストールし、主催者に共有する前にピン留めした Git インストールへ移行してください。

make pack-install ARGS="./path/to/pack"

2. テナントに対してアクティベートする

アクティベーションは、インストール済みのイミュータブルな 1 つのリビジョンを、1 つのテナントから見えるようにします。この操作もスナップショットストアに対してローカルで実行され、重複する問題 ID、利用できないランタイム、ダイジェストの不一致、未インストールのパックは拒否されます。

make pack-activate ARGS="com.example.event-pack@1.0.0 --tenant acme"

期待される出力:

Pack activated for tenant 'acme': com.example.event-pack@1.0.0

3. インストール済みリビジョンを確認する

pack list は、アクティベーションが指しているローカルのロックエントリを検証します。テナント単位のアクティベーション一覧ではないため、上のアクティベーション成功メッセージと合わせて確認してください。

make pack-list

期待される出力:

Installed packs: 1
  - com.example.event-pack@1.0.0 (git, 3 problems, <sha256-content-digest>)

4. イベントを作成する Preview

application-admin-console で、同じテナントのイベントを作成します。イベントピッカーは公式カタログとそのテナントのアクティベート済みパックリビジョンを合成するため、アクティベートしたパックの問題が公式カタログの問題と並んで表示されます。

イベント作成の時点で、プラットフォームはその時点で有効なカタログスナップショットをピン留めします。その後の installactivatedeactivate 操作がそのイベントを書き換えることはありません。主催者が選択した問題をデプロイすると、デプロイメントはイベントにピン留めされたスナップショットに対して解決され、可変なカタログ参照ではなく、その問題のパック来歴 (provenance) を保持します。

このブラウザーでのイベント作成経路は、まだライブでの一括検証が済んでいないため、最初のパックのチュートリアルのイベント手順と同じ preview バッジが付いています。運営フローの全体像はイベントをエンドツーエンドで運営するに進んでください。

パックが実際のデプロイに到達するのは Lite モード (make deploy) だけです。Lite は固定のテナント id local のアクティベーションを読み取るため、上のローカルリハーサルを終えたら、任意のテナント名ではなく --tenant local でアクティベートしてください。SaaS モード (make deploy-saas) は、パックのアクティベーションが 1 つでも存在する間は synth 自体を拒否します。プール型カタログから黙って除外することはありません。