

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á.

# Etapa 3: criar e implantar um livro de receitas personalizado
<a name="using-s3-cookbook"></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).

A pilha não está exatamente pronta ainda:
+ O aplicativo precisa de algumas informações para acessar o servidor de banco de dados MySQL e o bucket do Amazon S3, como o nome de host do banco de dados e o nome do bucket do Amazon S3.
+ Você precisa configurar um banco de dados no servidor de banco de dados MySQL e criar uma tabela para armazenar os metadados das fotos.

Você poderia lidar com essas tarefas manualmente, mas uma abordagem melhor é implementar a *receita* do Chef e fazer com que o OpsWorks Stacks execute a receita automaticamente nas instâncias apropriadas. As receitas do Chef são aplicativos Ruby especializados que o OpsWorks Stacks usa para realizar tarefas em instâncias, como instalar pacotes ou criar arquivos de configuração. Elas estão incluídas em um *livro de receitas*, que pode conter várias receitas e arquivos relacionados, como modelos para arquivos de configuração. O livro de receitas é colocado em um repositório como GitHub, e deve ter uma estrutura de diretórios padrão. Se você ainda não tem um repositório personalizado de livros de receitas, consulte [Repositórios de livro de receitas](workingcookbook-installingcustom-repo.md) para informações sobre como configurar um.

Neste exemplo, o livro de receitas foi implementado para você e está armazenado em um [ GitHub repositório público](https://github.com/amazonwebservices/opsworks-example-cookbooks/tree/master/photoapp). O livro de receitas contém duas receitas, `appsetup.rb` e `dbsetup.rb`, além de um arquivo de modelo, `db-connect.php.erb`.

A receita `appsetup.rb` cria um arquivo de configuração que contém as informações que o aplicativo precisa para acessar o banco de dados e o bucket do Amazon S3. Ele é basicamente uma versão um pouco modificada da `appsetup.rb` receita descrita em [Conexão do aplicativo ao banco de dados](gettingstarted-db-recipes.md#gettingstarted-db-recipes-appsetup). A principal diferença são as variáveis que são passadas para o modelo, que representam as informações de acesso.

Os primeiros quatro atributos definem as configurações de conexão do banco de dados e são definidos automaticamente pelo OpsWorks Stacks quando você cria a instância do MySQL.

Há duas diferenças entre essas variáveis e as contidas na receita original:
+ Assim como a receita original, a variável `table` representa o nome da tabela do banco de dados que é criada por `dbsetup.rb` e está ajustada para o valor de um atributo definido no arquivo de atributos do livro de receitas.

  No entanto, o atributo tem um nome diferente: `[:photoapp][:dbtable]`.
+ A variável `s3bucket` é específica deste exemplo e está ajustada para o valor de um atributo que representa o nome do bucket do Amazon S3, `[:photobucket]`.

   `[:photobucket]` é definido usando JSON personalizado, conforme descrito mais adiante. Para obter mais informações sobre atributos, consulte [Atributos](workingcookbook-installingcustom-components-attributes.md).

Para obter mais informações sobre atributos, consulte [Atributos](workingcookbook-installingcustom-components-attributes.md).

A receita `dbsetup.rb` configura uma tabela de banco de dados para armazenar todos os metadados de fotos. Ele é basicamente uma versão um pouco modificada da receita `dbsetup.rb` descrita em [Configuração do banco de dados](gettingstarted-db-recipes.md#gettingstarted-db-recipes-dbsetup). Consulte esse tópico para obter uma descrição detalhada. 

A única diferença entre este exemplo e a receita original é o esquema do banco de dados, que tem três colunas contendo o ID, o URL e a legenda de cada foto armazenada no bucket do Amazon S3.

As receitas já estão implementadas, então tudo o que você precisa fazer é implantar o livro de receitas do photoapp no cache do livro de receitas de cada instância. OpsWorks Em seguida, o Stacks executa as receitas em cache quando ocorre o evento de ciclo de vida apropriado, conforme descrito posteriormente.

**Para implementar o livro de receitas do photoapp**

1. **Na página OpsWorks Stacks Stack, escolha **Stack** **Settings** e, em seguida, escolha Editar.**

1. Na seção **Configuration Management**:
   + Defina **Use custom Chef cookbooks** como **Yes**.
   + Defina **Repository type** como "Git".
   + Defina **Repository URL (URL do repositório).** como **git://github.com/amazonwebservices/opsworks-example-cookbooks.git**.

1. Na página **Stack (Pilha)**, selecione **Run Command**, selecione o comando de pilha **Update Custom Cookbooks (Atualizar livros de receitas personalizados)** e, em seguida, selecione **Update Custom Cookbooks (Atualizar livros de receitas personalizados)** para instalar o novo livro de receitas nos caches de livros de receitas de instância.   
![\[Run Command interface showing Update Custom Cookbooks option and instance selection.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/redis_walkthrough_command.png)