Python用Vonageビデオ移行ガイド

からの移行 Opentok-Python-SDK への vonage-python-sdk

はじめに

目的

このドキュメントの目的は、OpenTok Python Server SDK から Vonage Python Server SDK への移行の出発点を提供することです。このドキュメントには より具体的で詳細な移行ガイドは、このリンクから入手できる。.

スコープ

この文書では、少なくとも次のバージョンを使用していることを前提としています。 バージョン 3.9.0 またはそれ以降 その OpenTok Python SDK.

Video API は Vonage Python SDK で完全にサポートされています。SDKの最新のフルリリースバージョンを使用する必要があります。 ギットハブ または パイパイ.

前提条件

本ガイドは、プロのソフトウェアエンジニアが従うことを意図しています。少なくとも、Python、一般的なPython開発者ツール、ビルドシステム、Git(またはその他のバージョン管理システム)の基本的な能力があることを前提としています。

Python コードの読み書き、プロジェクトの依存関係の管理、Python プロジェクトのデプロイと実行に慣れている必要があります。仮想Python環境の使用を推奨します。

Python言語と関連ツールの紹介は、このドキュメントの範囲を超えている。

リソース

以下のリンクは、この文書に付随するさらなる読み物や、この文書でカバーされていないことを参照するのに便利です:

ボネージ

トクボックス

移行計画

OpenTokからVonage Videoに移行する前に、現実的な期待値を設定するために、タスクの規模を考慮する必要があります。

影響を評価する

最初の質問は、あなたのアプリケーションのコードのどれくらいがOpenTok SDKに依存しているかということです。

SDKが直接使用されるすべてのファイルのリストを作成する。つまり .py ファイルには import opentok または from opentok import... ステートメントを使用してください。IDEまたはコマンドライン・ツールを使用してプロジェクト内のファイルを検索し、影響を受けるファイルを特定することができます。

タイムライン

移行を完了するのに必要な時間を考慮に入れてください。これは、プロジェクトの経験やその影響、テストによって異なります。OpenTokとVonage Video SDK間の同等性を検証できるように、優れたテスト・スイートを用意することが極めて重要です。移行完了までにかかる時間は、OpenTok SDKがコード内で使用されている場所の数と、使用されている機能の種類にほぼ比例します。APIコールの中には、他のものより簡単に置き換えられるものもあります。

バージョニング

OpenTokとVonage Videoは2つの異なる製品です。

バージョン管理システムに移行用の新しいブランチを作成し、既存のプロジェクトを壊すことなく、少しずつ頻繁に変更を加えられるようにしましょう。既存のプロジェクトのテストが網羅されていれば、それを正しいかどうかの判断材料として使うこともできます。移行用ブランチをメインブランチにマージするのは、変換が完了してからにするのが理想的です。

主な変更点と考察

パッケージ・アップデート

まず、プロジェクトにVonage Python SDKをインストールまたはアップデートする必要があります。 それには pip install -U vonage.

段階的な移行のために、プロジェクトにOpenTokとVonageの両方の依存関係を含めることができますが、本番環境へのデプロイではなく、テストのみに使用することを強くお勧めします。

認証の変更

OpenTok と Vonage Python Server SDK の認証はどちらもあなたに代わって行われるので、初期化時にアカウント情報を一度だけ提供する必要があります。OpenTok では API キーと秘密鍵が必要ですが、Vonage Python SDK ではアプリケーション ID と秘密鍵が必要です。VonageとOpenTokはどちらもトークンベースの認証を使っていますが、Vonageのトークンは以下の通りです。 JWT 一方、OpenTokはカスタムフォーマットを使用しています。APIキーとシークレットを vonage.Client オブジェクトは OpenTok と同様、Video API ではなく他の Vonage API に使用されます。そのため、Vonage アプリケーションを作成するか、既存のものを使用する必要があります。

からアプリケーションを作成できます。 Vonageダッシュボード. アプリケーションがビデオ機能を有効にしていることを確認してください。 既存のアプリケーションの「Edit(編集)」をクリックして、そのアプリケーションの機能とクレデンシャルを表示します。ここから、'Generate public and private key'をクリックする。これを行うたびに認証情報が変更され、既存のキー・ペアが壊れてしまうからです。これをクリックすると、秘密鍵がダウンロードされます。このファイルをテスト用に安全な場所に置いてください。 決して秘密鍵を共有したり、公開したりしないでください!

秘密鍵は事実上、あなたのアプリケーションの「パスワード」ですから、慎重に扱うべきです。 秘密鍵は安全なファイルに保存することをお勧めします。以下のようなパッケージを使用してください。 ドットエンブ を作成する。 .env ファイルへのパスを環境変数として保存し、クライアントのセットアップ時に参照できるようにします。 VONAGE_PRIVATE_KEY_PATH.アプリケーションID(ダッシュボードまたは編集時のURLで確認できます)についても、同様に行う必要があります。

アプリケーションの設定に関する詳しいガイダンスについては をご覧ください。 入門ガイド.

パイダンティック・モデルの使用

Vonage Python SDK は Pydanticデータモデル を使用して、ユーザーのオプションを取り込み、API データを返します。Video APIを使ったAPIリクエストのほとんどは、入力としてPydanticモデルを必要とします。

Video API のデータモデルにアクセスするには、例えば Video パッケージのメソッドの引数として vonage_video.models パッケージのようなものだ。

from vonage_video.models import SessionOptions

session_options = SessionOptions(...)

vonage_client.video.create_session(session_options)

使用方法

クライアントのインスタンス化

参照 Python SDK README このSDKの使用方法については

への参照を置き換える。 opentok.Client そして opentok.OpenTok を持つ。 Video クラスは vonage.Vonage.video.

その代わりにOpenTokがある:

client = opentok.Client(api_key, api_secret)

以下を実行する:

from vonage import Auth, Vonage

client = Vonage(Auth(
		application_id='VONAGE_APPLICATION_ID',
		private_key='VONAGE_PRIVATE_KEY_PATH',
	)
)

にアクセスできるようになります。 vonage.Vonage インスタンスで Video API.Video APIに関連するメソッドを呼び出すには、この構文を使用する:

vonage.Vonage.video.video_api_method(...)

詳しい使用方法は その Python Server SDK ビデオガイド.

OpenTokとVonage SDK間のメソッドの変更点

の間でメソッドにいくつかの変更がある。 OpenTok SDKとVideo APIの実装は、以下のとおりです。 Vonage SDK。

  • のメソッドシグネチャに含まれるすべての位置パラメータは opentok のキー・バリュー・パラメーターに置き換えられている。 vonage パッケージで提供される。
  • メソッドはレスポンスを Python 辞書として返すようになりました。
  • いくつかのメソッドは、わかりやすくするため、および/またはメソッドが何をするのかをよりよく反映させるために、名前が変更されている。以下に列挙する:
OpenTokメソッド名 Vonage ビデオ・メソッド名
opentok.generate_token video.generate_client_token
opentok.add_archive_stream video.add_stream_to_archive
opentok.remove_archive_stream video.remove_stream_from_archive
opentok.set_archive_layout video.change_archive_layout
opentok.add_broadcast_stream video.add_stream_to_broadcast
opentok.remove_broadcast_stream video.remove_stream_from_broadcast
opentok.set_broadcast_layout video.change_broadcast_layout
opentok.set_stream_class_lists video.change_stream_layout
opentok.force_disconnect video.disconnect_client
opentok.mute_all video.mute_all_streams
opentok.disable_force_mute video.disable_mute_all_streams
opentok.dial video.initiate_sip_call
opentok.start_render video.start_experience_composer
opentok.list_renders video.list_experience_composers
opentok.get_render video.get_experience_composer
opentok.stop_render video.stop_experience_composer
opentok.connect_audio_to_websocket video.start_audio_connector

マイグレーション戦略

インクリメンタル・マイグレーション

あるユースケースから別のユースケースへ移行し、"安定した "状態になるたびにコミットする、インクリメンタルな移行をお勧めします。このアプローチでは、OpenTokとVonage Video APIの両方を一時的に共存させる必要があることに注意してください。

OpenTokとVonage Video APIは完全に異なる2つのシステムであるため、このようなインクリメンタル・プロセスの間、アプリケーション全体が完全に機能しなくなることにご注意ください。

まず、特定の "Video Adapter "を作成してください。 現在のOpenTokとのやりとりをすべてグループ化し、OpenTokの使用を一つずつVonage Video APIに置き換えていきます。

別の方法として、その「ビデオアダプター」を移行専用の新しい「Vonageビデオアダプター」に複製してから、その2つのアダプターを一緒に交換することもできます。詳しくは ストラングラー・フィグ・パターン.

テストに関する推奨事項

移行中も移行後も、スムーズな移行には徹底したテストが欠かせない。これには単体テストだけでなく、統合テストや回帰テストも含まれます。また、自動化されたテストがあなたが考えているとおりに実行されていることを確認するため、あるいはテストが検出できなかったかもしれない問題を検出するために、移行前と移行後に少なくとも1回はアプリケーションフローを手動でテストする価値があります。等価テストを作成することを検討してもよいでしょう。

このアイデアは、アプリケーションのOpenTokとVonage Videoバージョンの両方が同じことを行うことを保証するスイートを作成することです。移行が完了し、アプリケーションのOpenTokバージョンが削除されたら、これらは破棄することができます。

トラブルシューティング&サポート

Vonage Python Server SDK は、実行時エラーに遭遇した場合に役立つ例外メッセージをスタックトレースで提供するように努めています。原因を特定するためにこれらを注意深く調べてください。

サポート・チャンネル

Vonage Videoへの移行に関する一般的なヘルプやディスカッションについては、以下をご覧ください。 をご覧ください。 コミュニティSlackの#Video-APIチャンネルVonage のスタッフや他のユーザーから回答を得ることができます。また、Xでもお問い合わせいただけます。 VonageDev.

Video API自体に問題がある場合の主な連絡先は以下の通りです。 support@api.vonage.com.SDKのバグを発見した場合は、以下の連絡先までご連絡ください。 GitHubに再現するための手順をissueとして提出する。.