Entendendo os validadores - AWS AppConfig

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

Entendendo os validadores

Ao criar um perfil de configuração, é possível especificar até dois validadores. Um validador garante que os dados da configuração estejam sintaticamente e semanticamente corretos. Se você planeja usar um validador, deve criá-lo antes de criar o perfil de configuração. AWS AppConfig suporta os seguintes tipos de validadores:

  • AWS Lambda funções: Compatível com sinalizadores de recursos e configurações de formato livre.

  • JSONEsquema: Compatível com configurações de formato livre. (valida AWS AppConfig automaticamente os sinalizadores de recursos em relação a um JSON esquema.)

AWS Lambda validadores de funções

O validadores da função do Lambda devem ser configurados com o esquema de eventos a seguir. O AWS AppConfig usa esse esquema para invocar a função do Lambda. O conteúdo é uma string codificada em base64 e a URI é uma string.

{ "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 se o cabeçalho X-Amz-Function-Error Lambda está definido na resposta. O Lambda define esse cabeçalho se a função gerar uma exceção. Para obter mais informações sobre X-Amz-Function-Error, consulte Lidar com erros e tentativas automáticas no AWS Lambda no Guia do desenvolvedor do AWS Lambda .

Veja um exemplo simples de um código de resposta do Lambda para uma validação bem-sucedida.

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

Veja um exemplo simples de um código de resposta do Lambda para uma validação malsucedida.

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

Veja a seguir outro exemplo que valida somente se o parâmetro de configuração for um 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 chama sua validação de Lambda ao chamar as operações StartDeployment e. ValidateConfigurationActivity API Você deve fornecer permissões appconfig.amazonaws.com para invocar seu Lambda. Para obter mais informações, consulte Concedendo acesso de funções aos AWS serviços. AWS AppConfig limita o tempo de execução da validação do Lambda a 15 segundos, incluindo a latência de inicialização.

JSONValidadores de esquema

Se você criar uma configuração em um SSM documento, deverá especificar ou criar um JSON esquema para essa configuração. Um JSON esquema define as propriedades permitidas para cada configuração do aplicativo. O JSON esquema funciona como um conjunto de regras para garantir que as configurações novas ou atualizadas estejam em conformidade com as melhores práticas exigidas pelo seu aplicativo. Aqui está um exemplo.

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

Quando você cria uma configuração a partir de um SSM documento, o sistema verifica automaticamente se a configuração está em conformidade com os requisitos do esquema. Caso contrário, o AWS AppConfig retornará um erro de validação.

Importante

Observe as seguintes informações importantes sobre validadores de JSON esquema:

  • Os dados de configuração armazenados nos SSM documentos devem ser validados em relação a um JSON esquema associado antes que você possa adicionar a configuração ao sistema. SSMos parâmetros não exigem um método de validação, mas recomendamos que você crie uma verificação de validação para configurações de SSM parâmetros novas ou atualizadas usando AWS Lambda.

  • Uma configuração em um SSM documento usa o tipo de ApplicationConfiguration documento. O JSON Esquema correspondente usa o tipo de ApplicationConfigurationSchema documento.

  • AWS AppConfig suporta a versão 4.X do JSON esquema para esquema embutido. Se a configuração do seu aplicativo exigir uma versão diferente do JSON Schema, você deverá criar um validador Lambda.