AGSサービスとExtendアプリの呼び出し
注釈:本資料はAI技術を用いて翻訳されています。
概要
Extendアプリは、プラットフォームの他の部分を呼び出す必要がよくあります。たとえば、IAMなどのAccelByte Gaming Services(AGS)エンドポイントや、他のExtendアプリなどです。このページでは、アプリのベースURL(AB_BASE_URL)を使用してこれらの呼び出しをアドレス指定する方法と、呼び出しがどこから発生するかに応じて、アプリを呼び出す際に適切なスキーム(http:// または https://)を選択する方法について説明します。
プラットフォーム内のアプリとサービス間の呼び出しは、内部ネットワークを経由できるようになりました。プラットフォーム内のトラフィックをこの経路で処理することで、エグレスコストの削減、レイテンシの低減、パブリックのレート制限の回避が可能になり、同時にアプリの既存のパブリックアクセスもそのまま維持されます。
プラットフォーム内の呼び出しには AB_BASE_URL を使用する
AB_BASE_URL は、Extendアプリで利用できる環境変数で、AccelByteプラットフォームを指し示します。これをプラットフォーム内の呼び出しのベースとして使用すると、次のような利点があります。
- 呼び出しが、プラットフォームの推奨するネットワーク経路を自動的にたどります。
- プラットフォームのアドレスが変更されてもコードを更新する必要がありません。この変数はプラットフォーム側で管理されます。
- パブリックアクセスを失うことなく、内部ルーティングが利用可能な場合にはその恩恵を受けられます。
AB_BASE_URL がどこまで到達できるかは、アプリがホストされているクラウドによって異なります。
- AGS Private Cloud — すべてのプラットフォーム内呼び出しに
AB_BASE_URLを使用することを強く推奨します。Private Cloudでは、すべてのアプリが1つのベースURLを共有するため、AB_BASE_URLは任意のAGSサービスや任意のExtendアプリ(別のネームスペースのアプリを含む)に到達できます。 - AGS Public Cloud — 各ネームスペースには独自のベースURLがあります。
AB_BASE_URLはアプリ自身のネームスペースのベースURLであるため、AGSサービスや同じネームスペース内のExtendアプリに使用してください。別のネームスペースにあるExtendアプリに到達するには、自身のAB_BASE_URLではなく、そのアプリのベースURLが必要です。適切なアドレスの組み立て方については、別のネームスペースにあるExtendアプリへの到達(Public Cloud) を参照してください。
値はハードコーディングせず、実行時に読み取ってください。例:
- C#
- Go
- Java
- Python
string? baseUrl = Environment.GetEnvironmentVariable("AB_BASE_URL");
// we can use the existing GetEnv() function from this repo, or the native os.Getenv()
baseURL := server.GetEnv("AB_BASE_URL", "")
@Value("${AB_BASE_URL}")
private String baseUrl;
base_url = env("AB_BASE_URL", "")
環境変数がアプリにどのように提供されるか、また独自の環境変数を追加する方法については、環境変数とシークレット を参照してください。
http:// と https:// の選択
何かがあなたのアプリを呼び出すとき、その呼び出しがどこから始まるかに応じて http:// または https:// を使用します。
- プラットフォーム内から始まる場合 →
http://を使用します。これにより、呼び出しは内部ネットワーク内にとどまります。 たとえば、別のExtendアプリがあなたのアプリを呼び出す場合です。これらの呼び出しは、レイテンシの低減、エグレスコストの削減、パブリックのレート制限の回避という利点があります。 - プラットフォーム外から始まる場合 →
https://を使用します。呼び出しはパブリックインターネットを経由してくるためです。 最もよくある例は、プレイヤーのデバイス上のゲームクライアントがパブリックインターネット経由でアプリに到達する場合です。
同じガイダンスを、クイックリファレンス用に表にまとめると次のとおりです。
| 呼び出しの発生場所 | 使用するもの | 例 |
|---|---|---|
| プラットフォーム内 | http:// | 別のExtendアプリ → あなたのアプリ |
| プラットフォーム外 | https:// | ゲームクライアント → アプリ |
http:// を使用しても安全ですか?はい。内部トラフィックはプラットフォームネットワークから外に出ることはなく、プラットフォームのサービスメッシュ(相互TLS)によって転送中に暗号化されます。http:// スキームは、呼び出しを内部でルーティングするようプラットフォームに指示するだけであり、データが暗号化されずに送信されるわけではありません。
別のネームスペースにあるExtendアプリへの到達(Public Cloud)
AGS Public Cloudでは、各ネームスペースが独自のベースURLを持つため、AB_BASE_URL は自身のネームスペースのみを指し示します。別のネームスペースにあるExtendアプリを呼び出す必要がある場合は、そのアプリ自身のアドレスを使用します。
http://<namespace>.ext.prod.gamingservices.accelbyte.io/<basePath>
このアドレスを取得するには、Admin Portalで対象アプリの詳細ページを開き、その Service URL をコピーします(Service URLの行 を参照)。http:// はそのまま維持してください。呼び出しは依然としてプラットフォーム内から始まり、別のネームスペースに入っていくだけです。AGS Private Cloudではこれは不要で、共有のベースURLがすでに他のネームスペースに到達できるため、AB_BASE_URL で十分です。
Service URLの行
Service URL は、他の呼び出し元がアプリに到達するために使用するアドレスです。これは、呼び出し可能なエンドポイントを公開するExtendアプリのタイプに適用されます。
- Extend Service Extension — ゲームや他のアプリが呼び出すRESTfulエンドポイントを公開するカスタムサービス。
- Extend Event Handler — AGSイベントを受信し、そのサービスアドレスで到達できるアプリ。
AGS Admin Portalでは、Service ExtensionまたはEvent Handlerアプリの詳細ページにある Service URL の行に、このアドレスの http:// と https:// の両方の形式が表示され、デフォルトは http:// です。上記のガイダンスに従い、呼び出し元が実行される場所に合った形式を選択してください。呼び出し元がプラットフォーム内の別のExtendアプリまたはAGSサービスの場合は http://、呼び出し元がプラットフォーム外の場合は https:// を使用します。
