コンテナビルドのワークフロー
注意: このコンテンツはドキュメントのプレビューです。コードサンプルを含む完全なドキュメントは現在作成中です。このページ下部にあるフィードバック方法を利用してフィードバックをお寄せください。
コンテナビルド のワークフローには、コンテナの準備、ビルドの取得 (または作成)、ビルドファイルのリストの作成、ビルドファイルの反復、ビルドバージョンの作成、および ビルドの同期の待機 があります。
コンテナビルドのワークフローを使用する前に、CCD (連続的衝突判定) API キー と以下のロールを持つ UGS サービスアカウントが必要です。
- Multiplay API ビューアー
- マルチプレイヤー API エディター
- Multiplay レジストリエディター
ノート: 詳細については、プロジェクトロール と サービスのアカウント認証 を参照してください。
ノート: このワークフローを通して、使用する Unity プロジェクト ID と環境 ID を参照する必要があります。プロジェクト ID はプロジェクト設定ページ、環境 ID は環境ページで確認できます。
以下の図は、ワークフローの簡略化したバージョンを示しています。
ビルドコンテナの準備
ノート: ゲームバイナリのビルドとコンテナのビルドは、Multiplay Hosting API の範囲外です。
- コンテナイメージをビルドします (帯域外プロセスを使用)。
- Unity プロジェクト ID と環境 ID をメモしておきます。
- Multiplay コンテナレジストリにログインします。
- ユーザー名にキー ID を使用し、パスワードに秘密鍵を使用します。認証 を参照してください。
docker login registry.multiplay.com -u <KeyID>
ビルドの取得または作成
ビルドを取得するプロセスは、既存のビルドを使用するか 新しいビルドを作成する かによって異なります。
ノート: ビルド ID と CCD (連続的衝突判定) バケット ID は、1 対 1 関係にある別々の ID です。バケット (バケット ID で識別) にはビルドファイルが格納され、ビルド (ビルド ID で識別) はメタデータが入ったバケットからのファイルをラップします。
名前による既存のビルドの取得
List Builds API を使用して、既存のビルド ID を名前で取得できます。
Build List API のレスポンス本体には、各ビルドの ccd.bucketID
フィールドに各ビルドの CCD (連続的衝突判定) バケット ID、各ビルドの buildID
フィールドにビルド ID が入っています。使用するビルドの buildID
をメモしておいてください。
以下のコードサンプルは、curl を使用して既存のビルドを取得する方法を示しています。
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
使用するビルドを見つけたら、レスポンス本体の buildID
をメモしておきます。
新しいビルドの作成
Create build API を使用して、新しいビルドを作成できます。
以下のコードサンプルは、curl を使用してビルドを作成する方法を示しています。
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"buildName":"Dev Build A", "osFamily": "LINUX"}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
新しいビルドを作成したら、レスポンス本体の buildID
をメモしておきます。
コンテナイメージへのタグ付け
新しいビルドに初めてプッシュするときは、v1
を MultiplayTag
として使用します。最初のプッシュ後は、増分タグ (例えば、v2
など) を使用します。
以下のコードスニペットをコンテナのタグ付けのテンプレートとして使用します (ImageName
と ImageTag
は、ローカルイメージの名前とタグです)。
docker tag <ImageName>:<ImageTag> registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
コンテナレジストリへのイメージのプッシュ
コンテナにタグを付けた後、それを Multiplay コンテナレジストリにプッシュします。以下のコードスニペットをテンプレートとして使用します。
docker push registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
ビルドバージョンの作成
Create a new build version API を使用して、ビルドバージョンを作成できます。
以下のコードサンプルは、curl を使用してビルドバージョンを作成する方法を示しています。
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"container": {"imageTag": "v1"}, "forceRollout": false}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}/versions
ビルドの同期の待機
syncStatus
フィールドが SYNCED
になるまで Get a single build API を再試行することで、ビルドの同期が完了したときにそれを確認できます。
以下のコードサンプルは、curl を使用してビルドが同期するまで待つ方法を示しています。
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}