開発環境の設定

開発環境をどのように設定するかは、開発フェーズに応じて変わります。完全なローカル設定は、作業初期段階で必要になりますが、完全なテストやリリースには、クラウドベースの設定が必要になります。

拡張機能の様々な開発ステージについては、Extensions Life-Cycle Management を参照してください。

環境設定

Genvid SDK の Twitch 拡張機能を作成するには、主に 3 つのフェーズがあり、開発環境を変更する必要がでてきます。

以下のテーブルで、それぞれの開発環境の違いを説明しています。

Twitch Dev モード クラスタモード 説明
ローカルモードでの Twitch Developer Rig と拡張機能
ローカル Bastion
ローカルクラスタ
Twitch アカウントにストリーミングを行い、Twitch Developer Rig をローカルで開発します。
バックエンドに CORS/SSL が必要。
ホストされたテストでの Twitch 拡張機能
ローカル Bastion
リモートクラスタ
Twitch アカウントにストリーミングを行い、Twitch でアセットファイルをホストします。
バックエンドに CORS/SSL が必要。
リリースされた Twitch 拡張機能
ローカル Bastion
リモートクラスタ
Twitch アカウントにストリーミングを行います。
バックエンドに CORS/SSL が必要。
スケーラビリティが向上。

ローカル開発 (ローカル Bastion / ローカルクラスタ)

ローカルクラスタの設定方法については、ローカルクラスタの開始 を参照してください。

ローカルクラスタを設定後、以下の設定を行う必要があります。

  • CORS を使用する Web バックエンドを構成する。
  • Web バックエンドに SSL 証明書を提供する。

Twitch 拡張機能の開発環境の設定には、いくつかの追加ステップが必要です。

  • Twitch Streaming Service を使用することを指定する。

  • ストリームを Twitch Ingest Service (Twitch) に送信する。

  • アカウントにストリーミングできるように、Twitch Channel ID と Stream Key を指定する。

    (これらの設定は Twitch アカウントで行います)

config フォルダに格納されている stream.hcl ファイルを使用して、これらの構成情報を設定することができます。以下の表では、変更が必要なすべての変数が表示されています。

環境変数 説明
TWITCH_EXT_CHANNEL Twitch チャンネル名 (ユーザー名)。
TWITCH_EXT_KEY Twitch アカウントキー (ダッシュボードとチャンネルに記載されています)。
TWITCH_SSL ローカルテスト (Twitch) の場合は true、ホストされたテスト (またはライブ) では true
ENDPOINT クラウドクラスタを使用する場合、DNS URL (プロトコル http/https を指定しない)。この値は、自動的に生成されます。
TWITCH_EXT_SECRET Twitch 拡張機能アプリケーションのシークレットキーで、サーバー側の JWT デコードに必要。 (Webgateway API)

ファイルを更新後、クラスタ構成にロードする必要があります。 DirectX サンプル では、directx.py スクリプトで処理します。

py directx.py load

ホストされたテスト (ローカル Bastion / リモートクラスタ)

リモートクラスタの設定については、Twitch 拡張機能の Terraform サンプル を参照してください。

リモートクラスタを設定後、以下の設定を行う必要があります。

  • CORS を使用する Web バックエンドを構成する。
  • Web バックエンドに SSL 証明書を提供する。

拡張機能のリリース (プロダクション) (ローカル Bastion / リモートクラスタ)

リモートクラスタの設定については、Twitch 拡張機能の Terraform サンプル を参照してください。

リモートクラスタを設定後、以下の設定を行う必要があります。

  • CORS を使用する Web バックエンドを構成する。
  • Web バックエンドに SSL 証明書を提供する。

Twitch 拡張機能のリリースバージョンは、スケーラビリティのためにビルドする必要があります。つまり:

  • 拡張機能から Twitch API への API 呼び出しは効率的です。
  • Web バックエンドへの API 呼び出しは効率的です。
  • インフラストラクチャはスケーラブルです。