「Extend App」の環境変数とシークレット
注釈:本資料はAI技術を用いて翻訳されています。
概要
ExtendアプリはgRPCサービスを公開します。これは、AGSがデフォルトの動作の代わりにカスタムロジックを実行するために呼び出すインターフェースです。各アプリには、以下の画像に示すように、デフォルトのEnvironment Secret Configuration(環境シークレット設定)とEnvironment Variable Configuration(環境変数設定)の値があります。
このガイドでは、Extendアプリの環境シークレットと環境変数を追加、更新、削除する方法について説明します。
環境シークレットを設定する
新しい環境シークレット設定を追加する
- 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アプリに適用します。