server | v4 switch to v3  

プラグインのアップロードガイド

このガイドは、独自のサーバープラグインを作成しているPhoton Enterprise Cloudのユーザーのみに関連する内容です。

Contents

概念

Enterpriseの顧客は、プライベートPhoton Cloudにカスタムプラグインをアップロードすることができます。 各プラグインのアセンブリは、名前、バージョン、および顧客IDによって識別されます。 また、プラグインをアップロードする際の認証用にキーが必要です。 同じプラグインアセンブリの複数のバージョンを並行して使用することができます。 特定のバージョンのアップロードが終了した後、ユーザーはダッシュボードから そのバージョンを使用するようにアプリケーションを設定することができます。

Back To Top

ワークフロー

前提条件

必要となる顧客データ

アップロードスクリプトと顧客の資格情報は、必要に応じてEnterprise Cloudのユーザーに提供されます。

アップロードのプロセスを説明するため、このセクションでは以下の値を使用します:

  • 顧客: "SampleCustomer"
  • キー: "MyKey"
  • プラグイン: "MyPlugin"

Back To Top

プラグインファイル

プラグインコードをコンパイルします。出力は「bin」フォルダ(サブフォルダではありません)に設置する必要があります。「bin」フォルダを.zipファイルに追加してください:

MyPlugin.zip
    - /bin
        – MyPlugin.dll
        – PhotonHivePlugin.dll
        – *.dll

Back To Top

PowerShellを準備

最低限必要となるPowerShellのバージョンは3.0 (Windows Management Framework 3)です。
  1. プラグインアップロードzipファイルをダウンロードします。「Photon.PrivateCloud.Plugin.Client.SAS.zip」ファイルをブロック解除し、内容を抽出します。

ファイルのブロック解除の方法については、こちらのリンクから詳細を参照してください。 2. アップロードスクリプトを実行しているマシンの日時を同期するよう、確認してください。同期されていない場合には、動作しない可能性があります。 この点についての詳細は、こちらのリンクを参照してください。 3. 新たなPowerShellウィンドウを開きます。プラグインアップロード用に新たなPowerShellセッションを開始することを推奨します。 4. デフォルトのWindows PowerShell 「Restricted」実行ポリシーがある場合には、変更する必要があります。 Set-ExecutionPolicy RemoteSignedを使用して「RemoteSigned」に設定することを推奨します。最新の実行ポリシーを取得するには、 Get-ExecutionPolicyを使用してください。 Microsoft TechNetの「Running Scripts」で、詳細を確認してください。 5. 以下のように、スクリプト「Photon.PrivateCloud.Plugin.Client.SAS.psm1」から必要なモジュールをインポートします:

Import-Module .\Photon.PrivateCloud.Plugin.Client.SAS.psm1

モジュールにインポートされた利用可能なコマンドは、以下を使用してリスト化されます:

Get-Module Photon.PrivateCloud.Plugin.Client.SAS | Select-Object -ExpandProperty ExportedCommands

コマンドについてのヘルプを参照するには、上記のリストから利用可能なコマンド名でGet-Helpを使用します。

Add-PhotonPluginのヘルプを参照する場合の例:

Get-Help Add-PhotonPlugin -Detailed

Back To Top

アップロード

プラグインをアップロードするには、「Add-PhotonPlugin」コマンドを使用します:

Add-PhotonPlugin -Customer SampleCustomer -Plugin MyPlugin -File C:\MyPath\MyPlugin.zip -Key MyKey

アップロードスクリプトは、自動インクリメントされたバージョン番号を割り当てます。 成功した場合には、割り当てられたバージョン番号が返されます。

正常なアップロード後の出力例:

MD5 : 036eb2b33cbfbebdd5bf31474fbf53e4
Name : SampleCustomer/MyPlugin/1/MyPlugin.zip
LastModified : 3/25/16 7:49:58 PM +00:00
Length : 222222
Customer : SampleCustomer
Plugin : MyPlugin
Version : 1

Back To Top

検証

アップロードが終了したら、プラグインはプライベートPhoton Cloudサーバーに展開されます。 特定バージョンの展開の状況を確認するには、以下を参照してください:

Get-PhotonPluginStatus -Customer SampleCustomer -Plugin MyPlugin -Key MyKey -Version 1

利用可能なサーバー数と、完了したサーバー数が一致している場合には、プラグインはすぐに利用できる状態です。

以下のコマンドを使用して、アカウントで利用可能な(アップロードされた)すべてのプラグインを確認することができます:

Get-PhotonPluginList -Customer SampleCustomer [-Plugin MyPlugin] -Key MyKey

「プラグイン」パラメータの使用は任意です。 このパラメータを使用すれば、1つのプラグインアセンブリの名前を指定するだけですべてのバージョンを確認できます。

Back To Top

設定

ダッシュボードに進み、新しいバージョンを使用するためプラグインを設定します。 バージョン文字列は、スクリプトの「Version」文字列と完全に一致しなければなりません。 Enterprise Cloudのプラグイン設定の詳細は、プラグインマニュアルで参照してください。

設定値の例:

  • AssemblyName = "MyPlugin.dll" (same as in Plugins SDK)
  • Type = "MyPlugin.PluginFactory" (same as in Plugins SDK)
  • Path = "SampleCustomer\MyPlugin"
  • Version = "Version" (string from upload script)
  • [CustomKey1] = [CustomValue1]
  • ...

Back To Top

古いプラグインバージョンを削除

多くのバージョンのプラグインをアップロードした場合には、今後使用しない古いバージョンを削除してください。 削除しない場合には、弊社はEnterprise Cloudに新しいサーバーを追加していますので、負荷が高くなります。結果的に新しいサーバーへの古いプラグインファイルの同期によって、処理に必要以上に時間を要する可能性があります。

以下の例では、プラグインバージョン1を42によって削除する方法を示します:

Remove-PhotonPluginRange -Customer SampleCustomer -Plugin MyPlugin -Range 1,42 -Key MyKey

Back To Top

推奨事項

バージョニング

現在、Photonのプラグインはサイド・バイ・サイドのアセンブリバージョニングのみをサポートしています:AppIDごとに1つのプラグインDLLバージョンです。

新しいプラグインバージョンを展開するには、以下の2つの方法を推奨します:

A. 「互換性のある」プラグインの展開:新たなクライアントバージョンは不要です。

  1. 新しいバージョンのプラグインアセンブリをアップロードします。
  2. AppIDをステージングする際:新たなバージョンが予期されたとおりに動作している点を確認してください(推奨)。
  3. 新たなプラグインアセンブリバージョンを使用するため、本番のAppID設定を更新します。

B. 「互換性のない」プラグインの展開:新たなクライアントバージョンが必要です。

  1. プラグインアセンブリの新たなバージョンをアップロードします。
  2. 新たな本番のAppIDを設定します。
  3. 新たなプラグインアセンブリバージョンを使用するため、新たな本番のAppIDを設定します。

Back To Top

静的フィールド

ルーム間やアプリケーション間で、同じプラグインが共有されます。 同じプラグインクラスの静的フィールドも、同様に共有されます。 静的フィールドの使用を回避できない場合、2つのアプリケーションで同じプラグインアセンブリの使用を回避するための方法は以下のとおりです:

  1. 異なる2つのプラグイン名の下に、同じプラグインファイルをアップロードします:

    a- 名前Xでプラグインアーカイブをアップロード b- 名前Yでプラグインアーカイブをアップロード

  2. 2つのアプリケーションに、「Path」以外は同じ設定を適用:

    a- プラグインXを使用するようアプリAを設定:"{customerName}\X" b- プラグインYを使用するようアプリBを設定:"{customerName}\X"

ドキュメントのトップへ戻る