Anulación de atributos con un JSON 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.

Anulación de atributos con un JSON 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 actuales. 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.

nota

Como AWS OpsWorks Stacks gestiona Chef de forma diferente para las pilas de Windows que para las de Linux, no puede utilizar las técnicas que se describen en esta sección para las pilas de Windows.

La forma más sencilla de anular un atributo de AWS OpsWorks Stacks es definirlo en un JSON personalizado, que tiene prioridad sobre los atributos de configuración y despliegue de la pila, así como sobre los atributos de los libros de cocina integrados y personalizados. default Para obtener más información, consulte Prioridad de los atributos.

importante

Debe anular los atributos de configuración e implementación de la pila con cuidado. Por ejemplo, la anulación de atributos en el espacio de nombres opsworks puede interferir con las recetas integradas. Para obtener más información, consulte Atributos de configuración e implementación de pilas.

También puede utilizar un JSON personalizado para definir atributos únicos, normalmente para transferir datos a las recetas personalizadas. Los atributos se incorporan simplemente en el objeto nodo y las recetas pueden hacer referencia a ellos mediante la sintaxis de nodo de Chef estándar.

Cómo especificar un JSON personalizado

Para utilizar un JSON personalizado para anular un valor de atributo, primero debe determinar el nombre completo del atributo. A continuación, debe crear un objeto JSON que contenga los atributos que desea anular y definir los valores deseados. Para su comodidad, los documentos Atributos de configuración e implementación de pila: Linux y Atributos integrados de los libros de recetas normalmente utilizan los atributos de implementación y configuración de la pila y los atributos integrados del libro de recetas, incluidos sus nombres completos.

Las relaciones principal-secundario del objeto deben corresponder a los nodos de Chef completos adecuados. Por ejemplo, suponga que desea cambiar los siguientes atributos de Apache:

  • El atributo keepalivetimeout, cuyo nodo es node[:apache][:keepalivetimeout], y tiene un valor predeterminado de 3

  • El atributo logrotate schedule, cuyo nodo es node[:apache][:logrotate][:schedule], y tiene un valor predeterminado de "daily".

Para anular los atributos y definir los valores en 5 y "weekly", respectivamente, debería utilizar el siguiente JSON personalizado:

{ "apache" : { "keepalivetimeout" : 5, "logrotate" : { "schedule" : "weekly" } } }

Cuándo especificar un JSON personalizado

Puede especificar una estructura JSON personalizada para las siguientes tareas:

Para cada tarea, AWS OpsWorks Stacks fusiona los atributos JSON personalizados con los atributos de configuración y despliegue de la pila y los envía a las instancias para que se fusionen con el objeto de nodo. Sin embargo, tenga en cuenta lo siguiente:

  • Si especifica un JSON personalizado al crear, clonar o actualizar una pila, los atributos se fusionan en los atributos de configuración e implementación de la pila para todos los eventos del ciclo de vida y los comandos de pila.

  • Si especifica un JSON personalizado para una implementación, los atributos se fusionan en los atributos de configuración e implementación de la pila solo para el evento correspondiente.

    Si desea utilizar dichos atributos personalizados para las implementaciones posteriores, debe especificar de nuevo explícitamente el JSON personalizado.

Es importante recordar que los atributos solo afectan a la instancia cuando los utilizan recetas. Si anula un valor de atributo, pero ninguna de las recetas posteriores hace referencia al atributo, el cambio no tiene ningún efecto. Debe asegurarse de que el JSON personalizado se envía antes de ejecutar las recetas asociadas o garantizar que se vuelvan a ejecutar las recetas adecuadas.

Prácticas recomendadas para los JSON personalizados

Puedes usar un JSON personalizado para anular cualquier atributo de AWS OpsWorks Stacks, pero ingresar la información manualmente es algo engorroso y no está bajo ningún tipo de control de código fuente. El uso del JSON personalizado es más adecuado para los siguientes fines:

  • Si solo quiere anular un pequeño número de atributos y, además, no necesita utilizar libros de recetas personalizados

    Con un JSON personalizado puede evitar la sobrecarga de la configuración y el mantenimiento de un repositorio de libro de recetas simplemente para anular un par de atributos.

  • Para valores confidenciales, como contraseñas o claves de autenticación

    Los atributos del libro de recetas se almacenan en un repositorio, por lo que cualquier información confidencial está en riesgo. En cambio, puede definir atributos con valores ficticios y utilizar un JSON personalizado para definir valores reales.

  • Para valores que se espera que varíen

    Por ejemplo, una práctica recomendada consiste en hacer que su pila de producción sea compatible con pilas de desarrollo y de ensayo distintas. Supongamos que estas pilas admiten una aplicación que acepta pagos. Si utiliza un JSON personalizado para especificar el punto de enlace de pago, puede especificar una dirección URL de prueba para su pila de ensayo. Cuando esté listo para migrar una pila actualizada a la pila de producción, podrá utilizar los mismos libros de recetas y el JSON personalizado para definir el punto de enlace de pago a la dirección URL de producción.

  • Para valores específicos de un comando de pila o de implementación determinado