> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 環境変数

> アプリケーションの環境変数を一覧取得、追加、置換、削除します。

```go theme={null}
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)
```

環境変数は `squarecloud.EnvVars`（プレーンな `map[string]string`）としてモデル化されています。すべてのメソッドは、操作完了後の環境変数一式へと解決されます。そのため常に最新のマップが返されます。

<Note>
  上限: アプリケーションごとに最大256個の変数、キーは最大1024文字、値は最大4096文字です。
</Note>

## 環境変数の一覧取得

```go theme={null}
envs, err := api.GetApplicationEnvs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

for key, value := range envs {
	fmt.Printf("%s=%s\n", key, value)
}
```

## 変数の追加または更新

`api.SetApplicationEnvs(appID, envs)` は新しい変数を既存の一式に **マージ** します。呼び出しに含まれていない既存のキーは保持されます。

```go theme={null}
envs, err := api.SetApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://...",
	"FEATURE_FLAG": "true",
})
if err != nil {
	panic(err)
}
```

## 環境変数一式全体の置換

`api.ReplaceApplicationEnvs(appID, envs)` はすべての変数を上書きします。

<Warning>
  呼び出しに含まれていないものは **削除** されます。追加や更新だけを行いたい場合は `SetApplicationEnvs` を使ってください — `ReplaceApplicationEnvs` は指定しなかったすべての変数を削除します。
</Warning>

```go theme={null}
envs, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://new-host...",
})
if err != nil {
	panic(err)
}
// FEATURE_FLAG is now gone
```

すべての変数を消去するには空のマップを渡します:

```go theme={null}
_, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{})
```

## 変数の削除

`api.DeleteApplicationEnvs(appID, keys)` はリストに指定したキーを削除します。存在しないキーは静かに無視されます。

```go theme={null}
envs, err := api.DeleteApplicationEnvs("abc123def456abc123def456", []string{"FEATURE_FLAG"})
if err != nil {
	panic(err)
}
```
