Paso 3: Crear e implementar un libro de recetas personalizado - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 3: Crear e implementar un libro de recetas personalizado

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

La pila aún no está lista del todo:

  • Su aplicación necesita información para obtener acceso al servidor de base de datos MySQL y al bucket de Amazon S3, como el nombre de host de la base de datos y el nombre del bucket de Amazon S3.

  • Necesita configurar una base de datos en el servidor de base de datos MySQL y crear una tabla para almacenar los metadatos de las fotos.

Puedes encargarte de estas tareas manualmente, pero una mejor estrategia es implementar Chef Recipe y hacer que AWS OpsWorks Stacks ejecute la receta automáticamente en las instancias apropiadas. Las recetas de Chef son aplicaciones de Ruby especializadas que AWS OpsWorks Stacks usa para realizar tareas en instancias como instalar paquetes o crear archivos de configuración. Van empaquetadas en un libro de recetas que puede contener varias recetas y archivos relacionados, como plantillas para archivos de configuración. El libro de cocina se coloca en un repositorio como GitHub, por ejemplo, y debe tener una estructura de directorios estándar. Si todavía no ha personalizado el repositorio de libros de recetas, vaya a Repositorios de libros de recetas para saber cómo configurar uno.

Para este ejemplo, el libro de cocina se ha implementado automáticamente y está almacenado en un repositorio público GitHub . El libro de recetas incluye dos recetas, appsetup.rb y dbsetup.rb, así como un archivo de plantilla, db-connect.php.erb.

La receta appsetup.rb crea un archivo de configuración que contiene la información que la aplicación necesita para obtener acceso a la base de datos y al bucket de Amazon S3. Se trata básicamente de una versión ligeramente modificada de la receta appsetup.rb que se describe en Conectar la aplicación con la base de datos. La diferencia principal son las variables que se pasan a la plantilla, que representan la información de acceso.

Los primeros cuatro atributos definen la configuración de conexión a la base de datos y AWS OpsWorks Stacks los define automáticamente al crear la instancia de MySQL.

Existen dos diferencias entre estas variables y las de la receta original:

  • Al igual que en la receta original, la variable table representa el nombre de la tabla de base de datos creada por dbsetup.rb, y está establecida en el valor de un atributo definido en el archivo de atributos del libro de recetas.

    Pero el atributo tiene un nombre diferente: [:photoapp][:dbtable].

  • La variable s3bucket es específica de este ejemplo y está establecida en el valor de un atributo que representa el nombre del bucket de Amazon S3, [:photobucket].

    [:photobucket] se define mediante JSON personalizado, tal y como se describe más adelante. Para obtener más información sobre atributos, consulte Atributos.

Para obtener más información sobre atributos, consulte Atributos.

La receta dbsetup.rb configura una tabla de base de datos donde guardar los metadatos de cada una de las fotos. Se trata básicamente de una versión ligeramente modificada de la receta dbsetup.rb, la cual se describe en Configurar la base de datos; consulte este tema para ver una descripción detallada.

La única diferencia entre este ejemplo y la receta original es el esquema de la base de datos, que tiene tres columnas que contienen el ID, la URL y el pie de foto de cada foto que se almacena en el bucket de Amazon S3.

Las recetas ya están implementadas, así que lo único que tienes que hacer es implementar el libro de recetas de photoapp en la caché de libros de cocina de cada instancia. AWS OpsWorks A continuación, Stacks ejecuta las recetas almacenadas en caché cuando se produce el evento de ciclo de vida correspondiente, como se describe más adelante.

Para implementar el libro de recetas photoapp
  1. En la página AWS OpsWorks Stacks Stack, selecciona Stack Settings y, a continuación, selecciona Editar.

  2. En la sección Configuration Management (Administración de la configuración):

    • Establezca Use custom Chef cookbooks (Usar libros de recetas de Chef personalizados) en Yes (Sí).

    • Establezca Repository type (Tipo de repositorio) en Git.

    • Establezca Repository URL (URL de repositorio) en git://github.com/amazonwebservices/opsworks-example-cookbooks.git.

  3. En la página Stack (Pila), elija Run Command (Ejecutar comando), seleccione el comando de pila Update Custom Cookbooks (Actualizar libros de recetas personalizados) y elija Update Custom Cookbooks (Actualizar libros de recetas personalizados) para instalar el nuevo libro de recetas en las cachés de libro de recetas de las instancias.

    Drop-down menu showing "Update Custom Cookbooks" selected. (AI generated)