

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

# スタック設定およびデプロイメント属性
<a name="workingcookbook-json"></a>

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

 OpsWorks スタックは、デプロイライフサイクルイベントに応答してデプロイコマンドなど、インスタンスでコマンドを実行すると、スタックの現在の設定を記述する属性のセットをインスタンスのノードオブジェクトに追加します。デプロイイベントと [Execute Recipes スタックコマンド](workingstacks-commands.md)の場合、 OpsWorks スタックはデプロイ属性をインストールし、追加のデプロイ情報を提供します。ノードオブジェクトの詳細については、「[属性の上書き](workingcookbook-attributes.md)」を参照してください。完全修飾ノード名などの、一般的に使用されるスタック設定とデプロイメント属性の一覧については、「[スタック設定およびデプロイ属性: Linux](attributes-json-linux.md)」および「[組み込みクックブックの属性](attributes-recipes.md)」を参照してください。

**注記**  
Linux スタックの場合、エージェントの CLI の [get\$1json コマンド](agent-json.md)を使用して、JSON オブジェクトの形式でこれらの属性の完全なリストを取得できます。

以降のセクションでは、以下のような構成の単純なスタックの Configure イベントと Deploy イベントに関連する属性を示します。
+ 2 つのインスタンスを持つ PHP アプリケーションサーバーレイヤー
+ 1 つのインスタンスを持つ HAProxy レイヤー

この例は、PHP アプリケーションサーバーインスタンスの 1 つである **[php-app1]** のものです。属性は、わかりやすいように、JSON オブジェクトの形式で表示されます。オブジェクトの構造は属性の完全修飾名に対応付けされます。例えば、`node[:opsworks][:ruby_version]` 属性は JSON 形式では以下のように表示されます。

```
{
  "opsworks": {
    ...
    "ruby_version": "1.8.7",
    ...
  }
}
```

**Topics**
+ [属性の設定](#workingcookbook-json-configure)
+ [デプロイ属性](#workingcookbook-json-deploy)

## 属性の設定
<a name="workingcookbook-json-configure"></a>

以下の JSON オブジェクトで示しているのは Configure イベントの属性です。このイベントは、インスタンスがオンラインまたはオフラインになったときに、スタックのすべてのインスタンスで発生します。属性には、組み込みのスタック設定属性と、イベントの前にスタック用に定義した任意の[カスタム JSON 属性](workingstacks-json.md) (この例にはありません) が含まれます。長さの関係で編集されています。さまざまな属性の詳細な説明については、「[スタック設定およびデプロイ属性: Linux](attributes-json-linux.md)」および「[組み込みクックブックの属性](attributes-recipes.md)」を参照してください。

```
{
  "opsworks": {
    "layers": {
      "php-app": {
        "id": "4a2a56c8-f909-4b39-81f8-556536d20648",
        "instances": {
          "php-app2": {
            "elastic_ip": null,
            "region": "us-west-2",
            "booted_at": "2013-02-26T20:41:10+00:00",
            "ip": "192.0.2.0",
            "aws_instance_id": "i-34037f06",
            "availability_zone": "us-west-2a",
            "instance_type": "c1.medium",
            "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal",
            "private_ip": "10.252.0.203",
            "created_at": "2013-02-26T20:39:39+00:00",
            "status": "online",
            "backends": 8,
            "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com"
          },
          "php-app1": {
            ...
          }
        },
        "name": "PHP Application Server"
      },
      "lb": {
        "id": "15c86142-d836-4191-860f-f4d310440f14",
        "instances": {
          "lb1": {
           ...
          }
        },
        "name": "Load Balancer"
      }
    },
    "agent_version": "104",
    "applications": [

    ],
    "stack": {
      "name": "MyStack"
    },
    "ruby_version": "1.8.7",
    "sent_at": 1361911623,
    "ruby_stack": "ruby_enterprise",
    "instance": {
      "layers": [
        "php-app"
      ],
      "region": "us-west-2",
      "ip": "192.0.2.0",
      "id": "45ef378d-b87c-42be-a1b9-b67c48edafd4",
      "aws_instance_id": "i-32037f00",
      "availability_zone": "us-west-2a",
      "private_dns_name": "ip-10-252-84-253.us-west-2.compute.internal",
      "instance_type": "c1.medium",
      "hostname": "php-app1",
      "private_ip": "10.252.84.253",
      "backends": 8,
      "architecture": "i386",
      "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com"
    },
    "activity": "configure",
    "rails_stack": {
      "name": null
    },
    "deployment": null,
    "valid_client_activities": [
      "reboot",
      "stop",
      "setup",
      "configure",
      "update_dependencies",
      "install_dependencies",
      "update_custom_cookbooks",
      "execute_recipes"
    ]
  },
  "opsworks_custom_cookbooks": {
    "recipes": [

    ],
    "enabled": false
  },
  "recipes": [
    "opsworks_custom_cookbooks::load",
    "opsworks_ganglia::configure-client",
    "ssh_users",
    "agent_version",
    "mod_php5_apache2::php",
    "php::configure",
    "opsworks_stack_state_sync",
    "opsworks_custom_cookbooks::execute",
    "test_suite",
    "opsworks_cleanup"
  ],
  "opsworks_rubygems": {
    "version": "1.8.24"
  },
  "ssh_users": {
  },
  "opsworks_bundler": {
    "manage_package": null,
    "version": "1.0.10"
  },
  "deploy": {
  }
}
```

情報の大部分は、名前空間とも呼ばれる `opsworks` 属性に含まれています。主な属性を次に示します。
+ `layers` 属性 - それぞれの属性がスタックの 1 つのレイヤーの設定を説明している、属性のセットです。

  レイヤーは短縮名 (この例では `php-app` と `lb`) で識別されます。その他の の短縮名の詳細については、「[OpsWorks スタックレイヤーリファレンス](layers.md)」を参照してください。
+ `instances` 属性 - すべてのレイヤーにはインスタンスの短縮名が付けられた `instances` 要素があり、レイヤーのオンラインインスタンスごとに 1 つの属性が含まれています。

  PHP アプリケーションサーバーレイヤーには 2 つのインスタンス (`php-app1` と `php-app2`)があります。HAProxy レイヤーには 1 つのインスタンス (`lb1`) があります。
**注記**  
`instances` 要素には、特定のスタック設定およびデプロイ属性が作成された時点でオンライン状態にあったインスタンスのみが含まれています。
+ インスタンスの属性 - 各インスタンスの属性には、インスタンスのプライベート IP アドレスやプライベート DNS 名など、インスタンスを特徴づける一連の属性が含まれています。わかりやすいように、例には `php-app2` 属性の詳細のみを示します。他のインスタンスにも同様の情報が含まれています。
+ `applications` - デプロイされるアプリケーションのリスト (この例では使用していません)。
+ `stack` - スタック名 (この例では) `MyStack`
+ `instance` - これらの属性がインストールされるインスタンス (この例では) `php-app1` レシピは、この属性を使用して、インスタンスのパブリック IP アドレスなどの、レシピが実行されているインスタンスに関する情報を取得できます。
+ `activity` - 属性を生成したアクティビティ (この例では Configure イベント)。
+ `rails_stack` - Rails アプリケーションサーバーレイヤーが含まれるスタックの Rails スタックです。
+ `deployment` - これらの属性がデプロイに関連付けられているかどうか。この例では、それらの属性が Configure イベントに関連付けられているため、`null` に設定されています。
+ `valid_client_activities` - 有効なクライアントアクティビティのリストです。

`opsworks` 属性の後には、以下のような他の最上位属性がいくつか続きます。
+ `opsworks_custom_cookbooks` - カスタムクックブックが有効化されているかどうかを示します。有効化されている場合、属性にはカスタムレシピのリストが含まれます。
+ `recipes` - このアクティビティによって実行されたレシピです。
+ `opsworks_rubygems` - インスタンスの RubyGems バージョンです。
+ `ssh_users` - SSH ユーザーのリスト (この例にはありません)。
+ `opsworks_bundler` - Bundler のバージョンとそれが有効化されているかどうかを示します。
+ `deploy` - デプロイメントアクティビティに関する情報です (この例にはありません)。

## デプロイ属性
<a name="workingcookbook-json-deploy"></a>

Deploy イベントまたは [Execute Recipes スタックコマンド](workingstacks-commands.md)の属性は、組み込みのスタック設定およびデプロイ属性と、カスタムのスタック設定またはデプロイ属性で構成されます (この例にはありません)。以下の JSON オブジェクトは、**php-app1** の属性を示しています。それらの属性は、スタックの PHP インスタンスに SimplePHP アプリケーションをデプロイした Deploy イベントに関連付けられています。オブジェクトの多くは、前のセクションで説明した Configure イベントの属性に類似したスタック設定属性で構成されます。そのため、例では主にデプロイ固有の属性に焦点を当てています。さまざまな属性の詳細な説明については、「[スタック設定およびデプロイ属性: Linux](attributes-json-linux.md)」および「[組み込みクックブックの属性](attributes-recipes.md)」を参照してください。

```
{
   ...
  "opsworks": {
    ...
    "activity": "deploy",
    "applications": [
      {
        "slug_name": "simplephp",
        "name": "SimplePHP",
        "application_type": "php"
      }
    ],
    "deployment": "5e6242d7-8111-40ee-bddb-00de064ab18f",
    ...
  },
  ...
{
  "ssh_users": {
  },
  "deploy": {
    "simplephpapp": {
      "application": "simplephpapp",
      "application_type": "php",
      "environment_variables": {
        "USER_ID": "168424",
        "USER_KEY": "somepassword"
      },
      "auto_bundle_on_deploy": true,
      "deploy_to": "/srv/www/simplephpapp",
      "deploying_user": "arn:aws:iam::123456789012:user/guysm",
      "document_root": null,
      "domains": [
        "simplephpapp"
      ],
      "migrate": false,
      "mounted_at": null,
      "rails_env": null,
      "restart_command": "echo 'restarting app'",
      "sleep_before_restart": 0,
      "ssl_support": false,
      "ssl_certificate": null,
      "ssl_certificate_key": null,
      "ssl_certificate_ca": null,
      "scm": {
        "scm_type": "git",
        "repository": "git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git",
        "revision": "version1",
        "ssh_key": null,
        "user": null,
        "password": null
      },
      "symlink_before_migrate": {
        "config/opsworks.php": "opsworks.php"
      },
      "symlinks": {
      },
      "database": {
      },
      "memcached": {
        "host": null,
        "port": 11211
      },
      "stack": {
        "needs_reload": false
      }
    }
  },
}
```

`opsworks` 属性は、前のセクションで説明した例のものとほぼ同等です。以降のセクションでは、デプロイに特に関連する属性を取り上げています。
+ `activity` - これらの属性に関連付けられているイベント (この例では Deploy イベント)。
+ `applications` - 各アプリケーションの属性 (アプリケーションの名前、スラグ名、タイプ) のリスト。

  スラグ名はアプリケーションの短縮名で、 OpsWorks スタックはアプリケーション名から生成します。SimplePHP のスラグ名は simplephp です。
+ `deployment` - デプロイを一意に識別するデプロイ ID。

`deploy` 属性には、デプロイされるアプリケーションに関する情報が含まれています。例えば、組み込み Deploy レシピによって、`deploy` 属性のデータが使用されて、適切なディレクトリ内のファイルがインストールされ、データベース接続ファイルが作成されます。`deploy` 属性には、デプロイされる各アプリケーションの属性が含まれています。この属性の名前はアプリケーションの短縮名です。各アプリケーション属性には、以下の属性が含まれています。
+ `environment_variables` - アプリケーションに対して定義したすべての環境変数が含まれています。詳細については、「[環境可変](workingapps-creating.md#workingapps-creating-environment)」を参照してください。
+ `domains` - デフォルトではアプリケーションの短縮名 (この例では simplephpapp)。カスタムドメインを割り当てている場合は、同様にそれらがここに表示されます。詳細については、「[カスタムドメインの使用](workingapps-domains.md)」を参照してください。
+ `application` - アプリケーションの短縮名。
+ `scm` - この要素には、リポジトリ (この例では Git リポジトリ) からアプリケーションのファイルをダウンロードするために必要な情報が含まれています。
+ `database` - スタックにデータベースレイヤーが含まれている場合は、データベースの情報。
+ `document_root` - ドキュメントのルートです。この例では `null` に設定されており、ルートがパブリックであることを示しています。
+ `ssl_certificate_ca`、`ssl_support`、`ssl_certificate_key` - アプリケーションが SSL をサポートしているかどうかを示します。サポートしている場合、`ssl_certificate_key` および `ssl_certificate_ca` 属性は対応する証明書に設定されます。
+ `deploy_to` - アプリケーションのルートディレクトリ。