Creación de un perfil de configuración en AWS AppConfig - AWS AppConfig

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.

Creación de un perfil de configuración en AWS AppConfig

Los datos de configuración son un conjunto de ajustes que influyen en el comportamiento de la aplicación. Un perfil de configuración incluye, entre otras cosas, un URI que permite AWS AppConfig localizar los datos de configuración en la ubicación almacenada y un tipo de configuración. AWS AppConfig admite dos tipos de perfiles de configuración: indicadores de características y configuraciones de formato libre. La configuración de un indicador de función almacena los datos en el almacén de configuración AWS AppConfig alojado y el URI es simplehosted. Una configuración de formato libre puede almacenar datos en el almacén de configuración AWS AppConfig hospedado, en diversas funciones de Systems Manager o en un AWS servicio que se integre con AWS AppConfig. Para obtener más información, consulte Crear un perfil de configuración de formato libre en AWS AppConfig.

Un perfil de configuración también puede incluir validadores opcionales para garantizar que los datos de configuración sean correctos desde el punto de vista sintáctico y semántico. AWS AppConfig realiza una comprobación mediante los validadores al iniciar una implementación. Si se detecta algún error, la implementación se detiene antes de realizar cambios en los destinos de la configuración.

nota

Si es posible, le recomendamos que aloje los datos de configuración en el almacén de configuración AWS AppConfig alojado, ya que es el que ofrece la mayoría de las funciones y mejoras.

Acerca de los validadores

Cuando crea un perfil de configuración, puede especificar hasta dos validadores. Un validador garantiza que los datos de configuración sean sintáctica y semánticamente correctos. Si planea usar un validador, debe crearlo antes de crear el perfil de configuración. AWS AppConfig admite los siguientes tipos de validadores:

  • AWS Lambda funciones: compatible con indicadores de características y configuraciones de formato libre.

  • Esquema JSON: compatible con configuraciones de formulario libre. (valida AWS AppConfig automáticamente los indicadores de funciones comparándolos con un esquema JSON).

Validadores de funciones AWS Lambda

Los validadores de funciones de Lambda deben configurarse con el siguiente esquema de eventos. AWS AppConfig utiliza este esquema para invocar la función de Lambda. El contenido es una cadena codificada en base64 y el URI es una cadena.

{ "applicationId": "The application ID of the configuration profile being validated", "configurationProfileId": "The ID of the configuration profile being validated", "configurationVersion": "The version of the configuration profile being validated", "content": "Base64EncodedByteString", "uri": "The configuration uri" }

AWS AppConfig verifica que el encabezado X-Amz-Function-Error Lambda esté establecido en la respuesta. Lambda establece este encabezado si la función arroja una excepción. Para obtener más información acerca de X-Amz-Function-Error, consulte Tratamiento de errores y reintentos automáticos en AWS Lambda en la Guía del desarrollador de AWS Lambda .

Aquí se incluye un ejemplo simple de un código de respuesta de Lambda para una validación satisfactoria.

import json def handler(event, context): #Add your validation logic here print("We passed!")

Aquí se incluye un ejemplo simple de un código de respuesta de Lambda para una validación incorrecta.

def handler(event, context): #Add your validation logic here raise Exception("Failure!")

Aquí hay otro ejemplo que se valida solo si el parámetro de configuración es un número primo.

function isPrime(value) { if (value < 2) { return false; } for (i = 2; i < value; i++) { if (value % i === 0) { return false; } } return true; } exports.handler = async function(event, context) { console.log('EVENT: ' + JSON.stringify(event, null, 2)); const input = parseInt(Buffer.from(event.content, 'base64').toString('ascii')); const prime = isPrime(input); console.log('RESULT: ' + input + (prime ? ' is' : ' is not') + ' prime'); if (!prime) { throw input + "is not prime"; } }

AWS AppConfig llama a su Lambda de validación al llamar a las operaciones StartDeployment y ValidateConfigurationActivity API. Debe proporcionar permisos de appconfig.amazonaws.com para invocar su Lambda. Para obtener más información, consulte Cómo conceder acceso a las funciones a los AWS servicios. AWS AppConfig limita el tiempo de ejecución de la validación de Lambda a 15 segundos, incluida la latencia de inicio.

Validadores de esquemas JSON

Si crea una configuración en un documento SSM, debe especificar o crear un esquema JSON para esa configuración. Un esquema JSON define las propiedades permitidas para cada ajuste de configuración de la aplicación. Este esquema JSON funciona como un conjunto de reglas para garantizar que los ajustes de configuración nuevos o actualizados se ajusten a las prácticas recomendadas requeridas por su aplicación. A continuación se muestra un ejemplo.

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "$id$", "description": "BasicFeatureToggle-1", "type": "object", "additionalProperties": false, "patternProperties": { "[^\\s]+$": { "type": "boolean" } }, "minProperties": 1 }

Al crear una configuración a partir de un documento SSM, el sistema verifica automáticamente que la configuración se ajusta a los requisitos del esquema. Si no es así, AWS AppConfig devuelve un error de validación.

importante

Tenga en cuenta la siguiente información importante sobre los validadores de esquemas JSON:

  • Los datos de configuración almacenados en documentos de SSM deben validarse con un esquema JSON asociado para poder agregar la configuración al sistema. Los parámetros SSM no requieren un método de validación, pero le recomendamos que cree una comprobación de validación para las configuraciones de parámetros SSM nuevas o actualizadas mediante este método. AWS Lambda

  • La configuración de un documento SSM utiliza el tipo de documento ApplicationConfiguration. El esquema JSON correspondiente utiliza el tipo de documento ApplicationConfigurationSchema.

  • AWS AppConfig es compatible con la versión 4.X de JSON Schema para esquemas en línea. Si la configuración de la aplicación requiere una versión diferente de JSON Schema, debe crear un validador de Lambda.