以前のバージョンからのアップグレード

あるバージョンから別のバージョンの Genvid SDK にアップグレードする際には、いくつかの手順があります。このページでは、最後のバージョンからバージョン 1.26.0 にアップデートするために必要な手順を説明します。SDK の以前のバージョンをアップグレードする場合は、 こちら で、ご使用のバージョンのための特別なアップグレード手順から始めてください。

一般的な更新方法

Genvid SDK のアップグレード

新規 SDK をローカルにセットアップする方法

  1. 新規 SDK をインストールする。

  2. Python スクリプトを実行して、Genvid Toolbox をインストールする。

    py install-toolbox.py
    
  3. Genvid Bastion スクリプトを実行して、bastion をアップデートする。

    genvid-bastion reinstall --reconfigure -b {mybastion} -uml
    

配信 Web サイトのアップデート

プロジェクトで弊社提供のサンプルのコードを使用する際に、サンプルで consul を使用してサービスを発見しやすくなりました。サンプルを再度ご確認いただき、必要に応じてプロジェクトを更新してください。URL が健全なサービスを指す可能性が高いため、サービスの URL を取得するには、catalog api ではなく consul health api を使用されることをおすすめします。

ゲームのアップデート

新機能を適用せずにゲームをアップデートするには、以前の SDK の古い genvid.dll を新しい SDK のものに差し替えます。古いプラグインと統合は、そのままで動作しますが、以下の例外があります。

注意

ご使用の Genvid SDK のバージョンのアップグレードの順序に常に省略することなく従ってください。例えば、バージョン 1.6.0 から 1.10.0 にアップグレードする場合、 まず、1.6.0 から 1.7.0 へのアップグレードから始めて各バージョンを進めていってください。

ご使用の特定バージョンに関しては、 アップグレード手順一覧 を参照してください。

Javascript API のアップグレード

Web サイトの Genvid JavaScript API もアップグレードしてください。

クラスタのアップグレード

以前のクラスタはそのまま残し、アップデート用に新たに作成することを推奨します。

新しいクラウドベースのクラスタを作成するには、一般的な指示に従ってください。

  1. 新しいバージョンにマッチする 新規 wingame AMI の設定
  2. 新規クラスタの作成

新しいローカルクラスタを作成するには、ローカルクラスタの初期化 セクションに記載されている一般的な指示に従ってください。

すべてのクラスタの差し替えが完了したら、モジュールセクション ページから古い SDK レポジトリを削除して構いません。

既存クラスタのアップデート

警告

クラスタをアップデートすることで、全てのインスタンスを置き換えたり、現在の設定を削除することができます。ライブクラスタのアップデートは行わないことをお勧めします。ライブクラスタのアップデートを行う場合、プランを適用する前に、変更内容をよく確認してください。

クラスタの構築に使用するモジュールの更新には、クラスタのインフラストラクチャにあるモジュールセクションの Reimport Module をクリックし、新しいバージョンのモジュールを選択してインポートします。最後に、Terraform セクションの適用をクリックします。

注釈

変更の中には、AWS の適用に時間がかかるものが存在します。特に、IAM の役割やポリシーなどがそれにあたり、作成しなおす際に、競合が発生する場合があります。Terraform プランを適用しなおすことで、問題は解決されます。

Genvid SDK サンプルのアップデート

プロジェクトと一緒に、それまでにインストールした Genvid SDK サンプルのアップデート を行ってください。

1.25.0 から 1.26.0 へのアップグレード

Cluster-UI 設定の変更

Cluster-UI 設定メニューの Encode -> Stream セクションで、専用フィールド Video ID を削除しました。すべてのストリーミングサービス (YouTube、Twitch) に対応する単一のフィールドに置き換え、選択されたストリーミングサービスに合わせてラベルを変更しました。

表 1 新しいフィールドラベル
Twitch チャンネル
YouTube ビデオ ID

重要

これまで genvid/encode/stream/videoid だった Consul キーを設定するには、 genvid/encode/stream/channel に変更する必要があります。

Terraform の設定で、Terraform の変数 cidrsubnet_cidr_block_size に変わりました。

Terraform の設定で、Terraform の変数 cidrsubnet_cidr_block_size に変更しました。この変更により、クラスタの更新時にサブネットの競合が発生するという既知の問題が修正されました。サブネットの IP は 10.0.0.0 に設定され、この変数が cidr のサイズを制御します。

例えば、 subnet_cidr_block_size を 27 に設定した場合、サブネット IP は 10.0.0.0/27 から始まります。その他のサブネット IP は、すべてのアベイラビリティゾーンに比例して分配されます。

Terraform 変数 StageNamespace を削除。

すべての Terraform モジュールから Terraform 変数の StageNamespace を削除しました。

AWS と Azure のタグ Namegenvid:cluster-name に名称変更しました。

Terraform モジュールでは、ユーザーが独自のカスタムタグを定義できるようになりました。Genvid のデフォルトタグとユーザー定義タグの競合を防ぐために、接頭辞 genvid: 付きの Genvid タグに変更しました。

AWS では、これにより Name が空白になります。回避策としては、EC2 コンソールに genvid:cluster-name というタグのカラムを追加してください。

AWS 管理コンソールから:

  1. EC2 をクリックします。
  2. Instances をクリックします。
  3. 設定ボタン (歯車アイコン) をクリックします。
  4. カラムが必要なタグを選択します。

タグ管理の詳細は、 AWS 解説書 を参照してください。

Azure では、同じリソースグループですべてのリソースを利用できます。

これは、既存のクラスタが更新された場合にのみ影響があります。

gvencode から送信される 2 つのメトリクス名を変更。

名前に誤字があったため、 gvencode から送信される 2 つのメトリクス名を変更しました。

  • compostionssentcompositionsent に変更。
  • compostionssentsizecompositionsizesent に変更。

SDK 解説書に記載されている名前は正しかったため、更新していません。

AWS および Azure のインデックス付きリソースが、 1 ベースではなく 0 ベースになりました。

これまでは、名前や識別情報に数字が含まれているリソースは 1 ベースでした。そのため、server-1game-1 などの名前になっていました。

1.26.0 のリリース以降、インデックスを 0 ベースに変更しました。識別子は 0 から始まることになります: server-0game-0 など。

旧バージョンで見つかった Terraform モジュールの更新。

以前 Terraform をインストールした際に作成した bastion サーバーを更新する際に、エラーが発生することがあります。このエラーは、新しいバージョンのモジュールを再インポートして plan apply を実行すると発生します。

on main.tf.json line 118, in variable:
118:     "bastionid": {

The root module input variable "bastionid" is not set, and has no default
value. Use a -var or -var-file command line argument to provide a value for
this variable.

修正するには:

  1. bastionid というグローバル変数を追加します。
  2. bastionid の値をアップデートする bastion サーバー名に設定します。
  3. plan apply を実行します。