「Extend App」の環境変数とシークレット
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services(AGS)では、独自のカスタム関数を「プラグイン」することでエンドポイントを拡張できます。これを行うには、カスタム関数の実装を含む特定のprotoファイルを使用してgRPCサーバーを作成する必要があります。その後、デフォルト関数の代わりにgRPCサーバー内のこれらのカスタム関数を呼び出すようにAGSを設定できます。
gRPCサーバー自体には、以下の画像に示すように、デフォルトの環境シークレット設定と環境変数設定の値があります。

このガイドでは、環境をカスタマイズする方法について説明します。環境シークレット設定と環境変数設定の両方を追加、更新、または削除できます。
環境シークレットの設定
新しい環境シークレット設定の追加
- C#
- Go
- Java
- Python
- 環境変数を読み取る必要がある場所で
Environment.GetEnvironmentVariableメソッドを使用します。例えば、以下のようにNEW_SECRET_URLのシークレットから値を取得します:
string? newSecretUrl = Environment.GetEnvironmentVariable("NEW_SECRET_URL");
if (newSecretUrl == null)
{
//do something here
}
- 必要に応じて環境シークレットを呼び出す新しい関数を作成します。例えば、以下のようにNEW_SECRET_URLのシークレットを追加します:
func main() {
...
logrus.Infof("gRPC server started")
logrus.Infof("app server started")
_ = newFunctionHere() // call the function here
}
func newFunctionHere() error {
// we can use existing GetEnv() function from this repo, or use native golang function os.GetEnv()
logrus.Printf("New secret variable: %s", server.GetEnv("NEW_SECRET_URL", "www.secreturlfallback.com"))
return nil
}
- 環境変数の値を取得するために、任意のプロパティに
@Valueアノテーションを使用します。例えば、以下のようにNEW_SECRET_URLのシークレットから値を取得します:
public class Example {
...
@Value("${NEW_SECRET_URL}")
private String newSecretUrl;
...
}
- 必要に応じて環境シークレットを呼び出す新しい関数を作成します。例えば、以下のようにNEW_SECRET_URLのシークレットを追加します:
async def main(port: int, profanities_file: Optional[str] = None, **kwargs) -> None:
env = Env(
eager=kwargs.get("env_eager", True),
expand_vars=kwargs.get("env_expand_vars", False),
)
env.read_env(
path=kwargs.get("env_path", None),
recurse=kwargs.get("env_recurse", True),
verbose=kwargs.get("env_verbose", False),
override=kwargs.get("env_override", False),
)
new_function_here(env)
...
await App(port, env, opts=opts).run()
def new_function_here(env):
print('New secret variable: ' + env("NEW_SECRET_URL", "www.secreturlfallback.com"))
def parse_args():
...
return result
if __name__ == "__main__":
asyncio.run(main(**parse_args()))
docker-composeを使用する場合は、docker-compose.yamlファイルのenvironment:セクションに新しい変数NEW_SECRET_URLを追加してください。
services:
app:
build:
...
environment:
...
- NEW_SECRET_URL
-
gRPCサーバーの最新イメージをクラスターに再デプロイします。コードが更新されていることを確認してください。

-
Add Secretボタンをクリックして、NEW_SECRET_URLをキーとして追加し、その値を入力します。次にAddボタンをクリックします。

-
正常に追加されたら、Restart and Applyをクリックして完了します。
既存の環境シークレット設定の更新
-
シークレット値の左側にあるeditアイコンをクリックし、必要に応じて値を調整してから、Saveをクリックします。

-
正常に更新されたら、Restart and Applyをクリックして完了します。
既存の環境シークレット設定の削除
-
環境シークレットの横にあるゴミ箱アイコンをクリックし、表示される確認メッセージのDeleteボタンをクリックします。
-
Restart and Applyボタンをクリックして、Extendアプリに変更を適用します。
環境変数の設定
新しい環境変数設定の追加
- C#
- Go
- Java
- Python
- 環境変数を読み取るために、任意の場所で
Environment.GetEnvironmentVariableメソッドを使用します。例えば、以下のようにNEW_ENVAR_URLのシークレットから値を取得します:
string? newVarUrl = Environment.GetEnvironmentVariable("NEW_ENVAR_URL");
if (newVarUrl == null)
{
//do something here
}
- 必要に応じて環境変数を呼び出す新しい関数を作成します。例えば、以下のように環境変数NEW_ENVAR_URLを追加します:
func main() {
...
logrus.Infof("gRPC server started")
logrus.Infof("app server started")
_ = anotherNewFunctionHere() // call the function here
}
func anotherNewFunctionHere() error {
// we can use existing GetEnv() function from this repo, or use native golang function os.GetEnv()
logrus.Printf("New environment variable: %s", server.GetEnv("NEW_ENVAR_URL", "www.envarurlfallback.com"))
return nil
}
- 環境変数の値を取得するために、任意のプロパティに
@Valueアノテーションを使用します。例えば、以下のようにNEW_ENVAR_URLのシークレットから値を取得します:
public class Example {
...
@Value("${NEW_ENVAR_URL}")
private String newVarUrl;
...
}
- 必要に応じて環境変数を呼び出す新しい関数を作成します。例えば、以下のように環境変数NEW_ENVAR_URLを追加します:
async def main(port: int, profanities_file: Optional[str] = None, **kwargs) -> None:
env = Env(
eager=kwargs.get("env_eager", True),
expand_vars=kwargs.get("env_expand_vars", False),
)
env.read_env(
path=kwargs.get("env_path", None),
recurse=kwargs.get("env_recurse", True),
verbose=kwargs.get("env_verbose", False),
override=kwargs.get("env_override", False),
)
another_new_function_here(env)
...
await App(port, env, opts=opts).run()
def another_new_function_here(env):
print('New environment variable: ' + env("NEW_ENVAR_URL", "www.envarurlfallback.com"))
def parse_args():
...
return result
if __name__ == "__main__":
asyncio.run(main(**parse_args()))
docker-composeを使用する場合は、docker-compose.yamlファイルのenvironment:セクションに新しい変数NEW_ENVAR_URLを追加してください。
services:
app:
build:
...
environment:
...
- NEW_ENVAR_URL
-
gRPCサーバーの最新イメージをクラスターに再デプロイします。コードが更新されていることを確認してください。

-
Add Variableボタンをクリックして、NEW_ENVAR_URLをキーとして追加し、その値を入力します。次にAddボタンをクリックします。

-
正常に追加されたら、ページの右側にあるRestart and Applyボタンをクリックして完了します。
既存の環境変数設定の更新
-
変数値の左側にある編集アイコンをクリックし、値を調整してから、Saveをクリックします。

-
正常に更新されたら、Restart and Applyをクリックして完了します。
既存の環境変数設定の削除
-
変数の横にあるゴミ箱アイコンをクリックし、表示される確認メッセージのDeleteボタンをクリックします。
-
Restart and Applyボタンをクリックして、Extendアプリに変更を適用します。