環境変数の使用 - AWS OpsWorks

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

環境変数の使用

注記

このトピックの推奨事項は、Chef 11.10 およびそれ以前のバージョンの Chef に適用されます。Chef 12 以降で環境変数を取得するには、アプリケーションデータバッグを使用する必要があります。詳細については、「AWS OpsWorks データバッグのリファレンス」および「アプリケーションデータバッグ (aws_opsworks_app)」を参照してください。

アプリケーションの環境変数を指定すると、AWS OpsWorks スタックはアプリケーションの deploy 属性に変数の定義を追加します。

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

インスタンスの 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 から情報を取得し、それをインスタンスに保存する方法の詳細については、「アプリケーションへのデータの引き渡し」を参照してください。