

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração de pilha e atributos de implantação
<a name="workingcookbook-json"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Quando o OpsWorks Stacks executa um comando em uma instância, por exemplo, um comando de implantação em resposta a um evento do ciclo de vida do Deploy, ele adiciona um conjunto de atributos ao objeto node da instância que descreve a configuração atual da pilha. Para os [comandos Deploy events e Execute Recipes stack](workingstacks-commands.md), o OpsWorks Stacks instala atributos de implantação, que fornecem algumas informações adicionais de implantação. Para obter mais informações sobre o objeto de nó, consulte [Sobrepor atributos](workingcookbook-attributes.md). Para uma lista de configuração de pilhas e atributos de implantação mais comumente usados, incluindo nomes de nós completamente qualificados, consulte [Atributos de implantação e configuração de pilha: Linux](attributes-json-linux.md) e [Atributos de livros de receitas integrados](attributes-recipes.md).

**nota**  
Em pilhas no Linux, a lista completa desses atributos, formatada como um objeto JSON, pode ser acessada usando o agente [comando get\$1json](agent-json.md) da CLI. 

As seções a seguir mostram os atributos associados a um evento Configurar e um evento Implantar para uma pilha simples, que contém o seguinte:
+ Uma camada PHP App Server com duas instâncias
+ Uma HAProxy camada com uma instância

Os exemplos são de uma das instâncias PHP App Server, **php-app1**. Por conveniência, os atributos são formatados como um objeto JSON. A estrutura do objeto é mapeada para os nomes totalmente qualificados dos atributos. Por exemplo, o atributo `node[:opsworks][:ruby_version]` aparece como se segue em uma representação JSON.

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

**Topics**
+ [Configurar Atributos](#workingcookbook-json-configure)
+ [Atributos de implantação](#workingcookbook-json-deploy)

## Configurar Atributos
<a name="workingcookbook-json-configure"></a>

O objeto JSON a seguir mostra os atributos para um evento Configurar, que ocorre em cada instância na pilha quando uma instância fica online ou off-line. Os atributos incluem os atributos de configuração da stack integrada e qualquer [atributo personalizado de JSON](workingstacks-json.md) que foram definidos para a pilha anterior ao evento (nenhuma neste exemplo). Foi editado por questão de tamanho. Para uma descrição mais detalhada dos vários atributos, consulte [Atributos de implantação e configuração de pilha: Linux](attributes-json-linux.md) e [Atributos de livros de receitas integrados](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": {
  }
}
```

A maioria das informações está sob o atributo `opsworks`, que normalmente é chamado de um namespace. A lista a seguir descreve os principais atributos:
+ `layers` atributos: um conjunto de atributos, cada descrevendo a configuração de uma das camadas da pilha.

  As camadas são identificados pelas abreviações, `php-app` e `lb` para este exemplo. Para obter mais informações sobre abreviações para outras camadas , consulte [OpsWorks Referência de camadas de pilhas](layers.md). 
+ `instances` atributos: cada camada tem um elemento `instances`, que inclui um atributo para cada uma das instâncias on-line das camadas, com o nome do nome abreviado da instância.

  A camada PHP App Server tem duas instâncias, `php-app1` e `php-app2`. A HAProxy camada tem uma instância,`lb1`. 
**nota**  
O elemento `instances` contém somente as instâncias que estão no estado online quando os atributos de pilha e de implantação são criados.
+ Atributos da instância: cada atributo da instância contém um conjunto de atributos que caracterizam a instância, como o endereço IP privado da instância e nome de DNS privado. Em resumo, o exemplo mostra apenas o atributo `php-app2` em detalhes, os outros contêm informações semelhantes.
+ `applications`: uma lista de aplicativos implantados, não usados neste exemplo.
+ `stack`: o nome da pilha. `MyStack` neste exemplo.
+ `instance`: a instância em que esses atributos são instalados. `php-app1` neste exemplo. As receitas podem usar esse atributo para conseguir informações sobre a instância em que está sendo executada, como o endereço IP público da instância.
+ `activity`: a atividade geradora dos atributos. Um evento Configure, neste exemplo.
+ `rails_stack`: a pilha Rails para pilhas que incluem uma camada Rails App Server.
+ `deployment`: se esses atributos são associados a uma implantação. Ele é definido como `null` para este exemplo, pois eles são associados a um evento Configurar.
+ `valid_client_activities`: uma lista de atividades de cliente válido.

O atributo `opsworks` é seguido por vários outros atributos de nível superior, incluindo os seguintes:
+ `opsworks_custom_cookbooks`: se os livros de receitas personalizados estão habilitados. Se esse for o caso, o atributo inclui uma lista de receitas personalizadas.
+ `recipes`: as receitas que foram executadas por essa atividade.
+ `opsworks_rubygems`— A RubyGems versão da instância.
+ `ssh_users`: uma lista de usuários SSH. Nenhum neste exemplo.
+ `opsworks_bundler`: a versão do bundler e se ela está habilitada.
+ `deploy`: informações sobre atividades de implantação. Nenhuma neste exemplo.

## Atributos de implantação
<a name="workingcookbook-json-deploy"></a>

Os atributos para um evento Implantar ou [comando de pilha para executar receitas](workingstacks-commands.md) consistem na configuração da pilha integrada e nos atributos de implantação, além de quaisquer outros atributos personalizados de pilha ou implantação (nenhum para este exemplo). O objeto JSON a seguir mostra os atributos de **php-app1** que estão associados a um evento Implantar que implantou o aplicativo SimplePHP às instâncias PHP da pilha. Grande parte do objeto consiste nos atributos de configuração da pilha que são semelhantes aos atributos para o evento Configurar descrito na seção anterior, assim, o exemplo tem o foco principal nos atributos específicos da implantação. Para uma descrição mais detalhada dos vários atributos, consulte [Atributos de implantação e configuração de pilha: Linux](attributes-json-linux.md) e [Atributos de livros de receitas integrados](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
      }
    }
  },
}
```

O atributo `opsworks` é idêntico ao exemplo na seção anterior. As seções a seguir são mais relevantes para a implantação:
+ `activity`: o evento associado a esses atributos. Neste exemplo, um evento Deploy.
+ `applications`: contém um conjunto de atributos para cada aplicativo que fornecem os nomes dos aplicativos, nomes slug e tipos.

  O nome do slug é o nome curto do aplicativo, que o OpsWorks Stacks gera a partir do nome do aplicativo. O nome slug para SimplePHP é simplephp.
+ `deployment`: o ID de implantação, que identifica unicamente uma implantação.

O atributo `deploy` inclui informações sobre os aplicativos que estão sendo implantados. Por exemplo, as receitas integradas de implantação usam os dados no atributo `deploy` para instalar arquivos nos diretórios adequados e criar arquivos com conexão nos bancos de dados. O atributo `deploy` inclui um atributo para cada aplicativo implantado, com o nome abreviado do aplicativo. Cada atributo do aplicativo inclui os seguintes atributos:
+ `environment_variables`: contém qualquer variável ambiental definida para o aplicativo. Para obter mais informações, consulte [Variáveis de ambiente](workingapps-creating.md#workingapps-creating-environment).
+ `domains`: por padrão, o domínio é o nome abreviado do aplicativo, que é simplephpapp para este exemplo. Se você tiver atribuído domínios personalizados, eles também aparecerão aqui. Para obter mais informações, consulte [Usando domínios predefinidos](workingapps-domains.md).
+ `application`: o nome abreviado do aplicativo.
+ `scm`: esse elemento contém as informações necessárias para fazer download dos arquivos do aplicativo do repositório. Neste exemplo, um repositório Git.
+ `database`: informações do banco de dados, caso a pilha inclua uma camada de banco de dados.
+ `document_root`: a raiz do documento, que é definida como `null` neste exemplo, indicando que a raiz é pública.
+ `ssl_certificate_ca`, `ssl_support`, `ssl_certificate_key`: indica se o aplicativo tem suporte para SSL. Se esse for o caso, os atributos `ssl_certificate_key` e `ssl_certificate_ca` são definidos para certificados correspondentes.
+ `deploy_to`: o diretório raiz do aplicativo.