Descripción de los validadores - 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.

Descripción 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 piensa utilizar 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.

  • JSONEsquema: compatible con configuraciones de formato libre. (valida AWS AppConfig automáticamente los indicadores de características comparándolos con un JSON esquema).

AWS Lambda validadores de funciones

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 es una cadena. URI

{ "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 and ValidateConfigurationActivityAPI. 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.

JSONValidadores de esquemas

Si crea una configuración en un SSM documento, debe especificar o crear un JSON esquema para esa configuración. Un JSON esquema define las propiedades permitidas para cada ajuste de configuración de la aplicación. El JSON esquema funciona como un conjunto de reglas para garantizar que los ajustes de configuración nuevos o actualizados se ajusten a las mejores prácticas requeridas por la 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 SSM documento, 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 JSON esquemas:

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

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

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