第1章
CloudScriptを使おう
1.1 CloudScriptとは
CloudScriptは、サーバー側で関数を書いておくことで、クライアント側から呼び出しができる仕組みです。サーバー処理とすることで、次のようなメリットがあります。
- データの改ざんがしにくくなる
- リリース後は再リリース無しでプログラム修正ができる
クライアント側で処理をしていると、悪意をもったユーザーがデータの改ざんをする可能性もありますが、サーバー処理とすることで改ざんがしにくくなります。また、ユーザーに配布するプログラムにはCloudScriptが含まれないため、リリース後も再リリース無しでプログラム修正をすることも可能になります。ビルドをしてリリースをして審査をして、という手順を何度も踏むとかなり時間がかかりますよね。この手順を省略できるだけでも、かなりメリットがあると思います。もちろん、クライアントとサーバーで通信が必要になるため、実行には時間がかかります。何でもかんでもサーバー処理とすればいいというわけでもないので、必要な分だけサーバー処理としましょう。
第2章「Azure Functions を使おう」でも解説をしていますが、サーバー処理はAzure Functionsを経由して実行するほうが便利なので、本書ではAzure Functionsの使い方をメインに解説します。したがって、CloudScriptを直接実行する使い方は、簡単にしか解説しません。
1.2 管理画面の使い方
PlayFab管理画面の「自動化 > CloudScript > リビジョン」と進んでいくと、サーバーで定義されているCloudScriptが表示されます(図1.1)。黒い部分には、あらかじめサンプルプログラムが実装されていて、ここに自分で関数を追加します。言語はJavascriptしか対応していないため、C#をメインに使っている人は難しく感じると思います。先ほども書きましたが、サーバー処理はAzure Functionsの使い方をメインに解説するため、内容は理解できなくて大丈夫です。
右上に「GITHUBを使用」というボタンがありますが、ここからGitHubと連携することで、コミットすると自動的にPlayFabへアップロードすることもできます。連携をしなくても、「新しいリビジョンをアップロード」を押すことで、手動でアップロードすることも可能です。また、「リビジョン1(ライブ)」という選択式のリストもあるのが見えます。これは、新しいリビジョンをアップロードするとリビジョンが1つ増えて、今実行すると動くリビジョンが「ライブ」として表示される仕組みです。例えば、リリースして何か不具合があった場合に、すぐ差し戻しをしたりすることも簡単にできます。プログラムからはリビジョン指定の実行もできるので、ライブのプログラムを切り替えなくても、過去のプログラムの実行もできたりします。なお、Azure Functionsを使う場合はGitHubと連携することができないので、管理画面からリビジョンを見ることはできません。
1.3 CloudScriptを実装する
CloudScriptのサンプルは最初から実装されています。今回はその中から、HelloWorld関数をそのまま使用することにします(リスト1.1)。
1.4 CloudScriptを呼び出す
クライアント側からHelloWorld関数を呼び出してみましょう。呼び出しには、ExecuteCloudScriptを使用します。
FunctionName
は呼び出す関数名です。リスト1.1のhandlers.
の後ろについている文字列が関数名なので、helloWorldを渡してあげます。FunctionParameter
はCloudScriptに渡す引数です。GeneratePlayStreamEvent
はPlayStreamイベントを作るかどうかで、特別な理由がなければtrueにしておきます。RevisionSelection
は、呼び出すリビジョンを指定するプロパティです。基本はライブなリビジョンを呼び出すのが普通だと思うので、Live
を指定します。常に最新のリビジョンを呼び出したい場合は、Latest
を指定してください。また、特定のリビジョンを呼び出したい場合は、Specific
を指定した上で、SpecificRevision
にリビジョン番号を指定します。