メインコンテンツまでスキップ

不適切表現フィルタのカスタマイズを始める

Last updated on July 15, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

AccelByte Gaming Services (AGS)では、不適切表現フィルタリング用のカスタムロジックを実装できます。

この記事では、Extend Overrideアプリテンプレートを例に、カスタムの不適切表現フィルタロジックを設定する手順を説明します。

前提条件

  1. 以下のツールがインストールされたWindows 11 WSL2/Linux Ubuntu 22.04またはmacOS 14以降:

    a. Bash

    • Windows WSL2またはLinux Ubuntuの場合:

      bash --version

      GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
      ...
    • macOSの場合:

      bash --version

      GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
      ...

    b. Make

    • Windows WSL2またはLinux Ubuntuの場合:

      Ubuntuリポジトリからインストールするには、sudo apt update && sudo apt install makeを実行します。

      make --version

      GNU Make 4.3
      ...
    • macOSの場合:

      make --version

      GNU Make 3.81
      ...

    c. Docker (Docker Desktop 4.30以降/Docker Engine v23.0以降)

    • Linux Ubuntuの場合:

      1. Ubuntuリポジトリからインストールするには、sudo apt update && sudo apt install docker.io docker-buildx docker-compose-v2を実行します。
      2. ユーザーをdockerグループに追加します: sudo usermod -aG docker $USER
      3. 変更を有効にするため、ログアウトして再度ログインします。
    • WindowsまたはmacOSの場合:

      WindowsまたはmacOSへのDocker Desktopのインストールについては、Dockerのドキュメントを参照してください。

      docker version

      ...
      Server: Docker Desktop
      Engine:
      Version: 24.0.5
      ...

    d. .NET 8 SDK

    • Linux Ubuntuの場合:

      Ubuntuリポジトリからインストールするには、sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0を実行します。

    • WindowsまたはmacOSの場合:

      WindowsまたはmacOSへの.NETのインストールについては、Microsoftのドキュメントを参照してください。

      dotnet --version

      8.0.119

    e. Postman

    • Postmanから利用可能なバイナリを使用します。

    f. extend-helper-cli

    g. TCPフォワーディング機能を持つローカルトンネルサービス。例:

  1. AGS Admin Portal環境へのアクセス。
    • ベースURL: <your environment's domain URL>
      • AGS Private Cloudのお客様の場合の例: https://dev.customer.accelbyte.io
    • まだ作成していない場合は、ゲームネームスペースを作成します。ネームスペースIDを控えておいてください。
    • confidentialクライアントタイプでOAuthクライアントを作成します。Client IDClient Secretを保管しておいてください。

アプリテンプレートをクローンする

git clone https://github.com/AccelByte/profanity-filter-grpc-plugin-server-csharp.git

Extendアプリの設定、実行、テスト

このセクションでは、Extendアプリの設定、ビルド、実行、そしてテストの方法を説明します。

Extendアプリを設定する

このアプリを実行できるようにするため、以下の設定手順に従います。

  1. .env.templateファイルの内容をコピーして、docker composeの.envファイルを作成します。

    注記

    ホストOSの環境変数は.envファイルの変数よりも優先されます.envファイル内の変数が正しく反映されないように見える場合は、同じ名前のホストOS環境変数が存在するかどうかを確認してください。詳細については、docker composeの環境変数の優先順位に関するDockerのドキュメントを参照してください。

  2. 以下に示すように、.envファイルに必要な環境変数を入力します。

    AB_BASE_URL=https://test.accelbyte.io     # AGS環境のベースURL
    AB_CLIENT_ID='xxxxxxxxxx' # 前提条件セクションのクライアントID
    AB_CLIENT_SECRET='xxxxxxxxxx' # 前提条件セクションのクライアントシークレット
    AB_NAMESPACE='xxxxxxxxxx' # 前提条件セクションのネームスペースID
    PLUGIN_GRPC_SERVER_AUTH_ENABLED=true # アクセストークン検証の有効化または無効化
    注記

    このアプリでは、PLUGIN_GRPC_SERVER_AUTH_ENABLEDはデフォルトでtrueになっています。falseに設定すると、AccelByte Gaming ServicesのアクセストークンなしでgRPC serverを呼び出すことができます。このオプションは開発目的のみに提供されています。本番環境ではgRPC serverのアクセストークン検証を有効にすることを推奨します。

Extendアプリをビルドする

このアプリをビルドするには、以下のコマンドを実行します。

make build

Extendアプリをテストする

Extendアプリは、ローカル開発環境またはAGSでテストできます。

ローカル開発環境でテストする

important

テストする前に、PLUGIN_GRPC_SERVER_AUTH_ENABLEDfalseに設定されていることを確認してください。設定されていない場合、gRPCリクエストはgRPC serverによって拒否されます。

このアプリのカスタム関数は、Postmanを使用してローカルでテストできます。Postmanを使用してExtendアプリをテストするには、以下の手順に従います。

  1. 以下のコマンドを使用してこのアプリを実行します。

    docker compose up --build
  2. Postmanで新しいgRPCリクエストを作成し、サーバーURLとしてlocalhost:6565を入力します。詳細については、gRPCサポートに関するPostmanのガイドを参照してください。

  3. 続いてProfanityFilterService/Validateメソッドを選択し、以下のサンプルペイロードで呼び出します。

    {
    "value": "bad"
    }

    レスポンスにはisProfane: trueが含まれます。

    {
    "isProfane": true,
    "message": "this contains banned words"
    }

AGSでテストする

AGSでローカルに実行されているアプリをテストするには、gRPC serverをインターネットに公開する必要があります。パブリックIPを用意せずにこれを行うには、ローカルトンネルサービスを使用できます。

  1. 以下のコマンドを使用してこのアプリを実行します。

    docker compose up --build
  2. ローカル開発環境のgRPC serverのTCPポート6565をインターネットに公開します。これを行う最も簡単な方法は、ローカルトンネルサービスプロバイダーを使用することです。

    • ngrokにサインインし、ngrokダッシュボードからauthtokenを取得してローカル環境に設定します。 そして、gRPC serverを公開するには、以下のコマンドを使用します。

      ngrok tcp 6565
    • またはpinggyを使用してsshコマンドラインのみで簡単なトンネルを設定することもできます。 その場合、gRPC serverを公開するには、以下のコマンドを使用します。

      ssh -p 443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -R0:127.0.0.1:6565 tcp@a.pinggy.io

    トンネルのフォワーディングURL(例: http://0.tcp.ap.ngrok.io:xxxxxまたはtcp://xxxxx-xxx-xxx-xxx-xxx.a.free.pinggy.link:xxxxx)を控えておいてください。

    備考

    gRPCサーバーのポート(TCP)をインターネットに公開するために、他のローカルトンネルサービスや別の方法を使用することもできます。

  3. Admin Portalで、この設定に対応する正しいネームスペースに移動し、以下を行います。

    1. サイドバーメニューで、Tools & Utilities > Profanity Management > Customizationsに移動します。

    2. まだ追加していない場合は、Add Custom Filterをクリックします。

    3. Locally hosted for testing purposeオプションを選択します。前の手順のトンネルフォワーディングURLを入力し、Saveをクリックします。

      Add custom filter

      Image shows the Locally hosted option

  4. confidentialクライアントタイプで、以下の権限を含むOAuthクライアントを作成します。

    • AGS Private Cloudのお客様の場合:
      • ADMIN:NAMESPACE:{namespace}:PROFANITY:FILTER [UPDATE,DELETE]
      • ADMIN:NAMESPACE:{namespace}:PROFANITY [READ]
    important
    • Client IDClient Secretのコピーを保管しておいてください。
    • この手順で作成したOAuthクライアントは、前提条件セクションで説明したものとは異なります。これは、次の手順でPostmanコレクションがgRPC ServerのURLを登録し、テストユーザーを作成・削除するために必要です。
  5. Postmanコレクション(demo/profanity-filter-demo.postman_collection.json)の概要にある手順に従い、前の手順で取得したClient IDClient Secretを使用して環境を設定します。Extendアプリのフローが実行されている間、このアプリのコンソールログに注意してください。コレクション内のすべてのリクエストを実行すると、少なくとも1つのgRPC Serverメソッドが呼び出されるはずです。

AGSにデプロイする

AGSにExtendアプリをデプロイするには、Admin Portalで以下の手順を行います。

  1. Extendアプリを作成する
  2. Extendアプリをアップロードする
  3. Extendアプリを設定する
  4. Extendアプリをデプロイする
  5. AGSでExtendアプリを使用するように設定する

Extendアプリを作成する

  1. AGS Admin Portalで、Extend Overrideアプリを作成したいネームスペースに移動します。
  2. サイドバーメニューのADD-ONSの下で、Extend > Overrideに移動します。
  3. Overridable Featuresページで、+ Create Newボタンをクリックします。
  4. Create Appフォームで、Extendアプリの名前と説明(任意)を入力します。
  5. Createをクリックします。新しいExtendアプリがOverridable Featuresアプリリストに追加されます。

Extendアプリをアップロードする

  1. extend-helper-cli用のIAMクライアントを設定します。クライアントタイプconfidentialIAMクライアントを作成し、以下に記載されている必要な権限を割り当てます。Client IDClient Secretのコピーを保管しておいてください。

    • AGS Private Cloudのお客様の場合:
      • ADMIN:NAMESPACE:{namespace}:EXTEND:REPOCREDENTIALS [READ]
      • ADMIN:NAMESPACE:{namespace}:EXTEND:APP [READ]
  2. 必要な環境変数をエクスポートし、extend-helper-cliを使用してExtendアプリのコンテナイメージをビルドしてAGSにアップロードします。

    • <project-dir>がExtendアプリのプロジェクトディレクトリを指していることを確認してください
    • <namespace><app-name>の値は、ExtendアプリのApp Detailページで確認できます
    • v0.0.1のような適切なイメージタグを使用してください
    # AGS環境のベースURL。例: https://spaceshooter.prod.gamingservices.accelbyte.io, https://dev.accelbyte.io など
    export AB_BASE_URL='https://xxxxxxxxxx'
    # extend-helper-cli用OAuthクライアントのクライアントID(手順1より)
    export AB_CLIENT_ID='xxxxxxxxxx'
    # extend-helper-cli用OAuthクライアントのクライアントシークレット(手順1より)
    export AB_CLIENT_SECRET='xxxxxxxxxx'

    ./extend-helper-cli-linux_amd64 image-upload --login --work-dir <project-dir> --namespace <namespace> --app <app-name> --image-tag v0.0.1
    important
    • 上記のコマンドは、Extendアプリのプロジェクトとは別のターミナルおよび別の作業ディレクトリから実行することを推奨します。これにより、extend-helper-cliがExtendアプリ用に意図された環境変数を誤って使用してしまうことを防止できます。
    • 以下のエラーが発生した場合は、解決手順についてトラブルシューティング: Dockerログインの失敗を参照してください。
      Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `The stub received bad data.`

    イメージが正常にアップロードされると、Image Version Historyページにバージョンv0.0.1のイメージが表示されます。

    image history in AGS Admin Portal

Extendアプリを設定する

アップロードしたExtendアプリをデプロイする前に、Extendアプリに必要な環境変数を設定する必要があります。アプリの詳細ページで、Extendアプリをローカルで実行およびテストした際に使用したものと同じ値で以下の環境変数を設定します。

  • AB_CLIENT_ID
  • AB_CLIENT_SECRET
warning

Extend Overrideアプリがリリースv2024.02.13より前のテンプレートに基づいている場合は、PLUGIN_GRPC_SERVER_AUTH_ENABLED環境変数を必ずtrueに設定してください。設定しない場合、Extendアプリのアクセストークン検証が無効になり、有効なアクセストークンなしでExtendアプリにアクセスされる可能性があります。

リリースv2024.02.13以降、Extend OverrideアプリテンプレートのPLUGIN_GRPC_SERVER_AUTH_ENABLEDはデフォルトでtrueに設定されています。アクセストークン検証は、PLUGIN_GRPC_SERVER_AUTH_ENABLEDが明示的にfalseに設定されている場合のみ無効にできます。これに合わせて、Admin Portalを通じて作成される新しいExtendアプリには、デフォルトでPLUGIN_GRPC_SERVER_AUTH_ENABLED環境変数が設定されなくなりました。以前は、Admin Portalを通じて作成されるすべての新しいExtendアプリにPLUGIN_GRPC_SERVER_AUTH_ENABLED=falseが追加されていました。

Extendアプリをデプロイする

Extendアプリをデプロイするには、Deploy Latest Imageをクリックします。アプリのステータスがRUNNINGに更新されるまで待ちます。これは、Extendアプリが正常にデプロイされたことを示します。

AGSでExtendアプリを使用するように設定する

Admin Portalで、不適切表現フィルタのカスタマイズを更新します。

AccelByte hostedオプションを選択し、いずれかのExtendアプリを選択します。完了するにはSaveをクリックします。

Image shows the Select an Extend app step

詳細については、カスタム不適切表現フィルタの作成と管理のガイドを確認してください。

次の手順

Extend Overrideアプリテンプレートを変更して、独自のカスタムロジックを実装します。詳細については、こちらを参照してください。