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への詳細な移行ガイド
- Vonage ビデオ・ドキュメント
- Vonage Video API 仕様
- Vonage Python Server SDK ビデオ使用ガイド
- Vonage Python Server SDK 動画ソースコード
- Vonage Python サーバー SDK GitHub リポジトリ
- Vonage Python Server SDKがPyPIで成果物を公開しました。
トクボックス
- OpenTok API REST リファレンス
- OpenTok Python Server SDK ドキュメント
- OpenTok Python Server SDKソースコード
- OpenTok Python サーバー SDK GitHub リポジトリ
- OpenTok Python Server SDKの成果物をPyPIに公開しました。
移行計画
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として提出する。.