

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 環境変数の使用
<a name="apps-environment-vars"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

**注記**  
このトピックの推奨事項は、Chef 11.10 およびそれ以前のバージョンの Chef に適用されます。Chef 12 以降で環境変数を取得するには、アプリケーションデータバッグを使用する必要があります。詳細については、「[AWS OpsWorks データバッグのリファレンス](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bags.html)」および「[アプリケーションデータバッグ (aws\$1opsworks\$1app)](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bag-json-app.html)」を参照してください。

[アプリケーションの環境変数を指定すると](workingapps-creating.md#workingapps-creating-environment)、 OpsWorks スタックは変数定義をアプリケーションの[`deploy`属性](workingcookbook-json.md#workingcookbook-json-deploy)に追加します。

カスタムレイヤーでは、レシピを使用して標準ノード構文によって変数の値を取得し、その値をレイヤーのアプリがアクセスできる形式で保存することができます。

インスタンスの `deploy` 属性から環境変数の値を取得するカスタムレシピを実装する必要があります。これにより、レシピではアプリケーションからアクセスできる形式のデータ (YAML ファイルなど) をインスタンスに保存できます。アプリケーションの環境変数の定義は、アプリケーションの `deploy` 内の `environment_variables` 属性に保存されます。以下の例は、属性構造を表す JSON を使用して、`simplephpapp` という名前のアプリケーションのそれらの属性の位置を示しています。

```
{
  ...
  "ssh_users": {
  },
  "deploy": {
    "simplephpapp": {
      "application": "simplephpapp",
      "application_type": "php",
      "environment_variables": {
        "USER_ID": "168424",
        "USER_KEY": "somepassword"
      },
    ...
  }
}
```

レシピでは、標準ノード構文を使用して変数の値を取得できます。以下の例では、前述の JSON から `USER_ID` 値を取得してそれを Chef ログに記録する方法を示します。

```
Chef::Log.info("USER_ID: #{node[:deploy]['simplephpapp'][:environment_variables][:USER_ID]}")
```

スタック設定およびデプロイメント JSON から情報を取得し、それをインスタンスに保存する方法の詳細については、「[アプリケーションへのデータの引き渡し](apps-data.md)」を参照してください。