Criação de um perfil de configuração no AWS AppConfig - 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á.

Criação de um perfil de configuração no AWS AppConfig

Os dados de configuração são uma coleção de configurações que influenciam o comportamento do seu aplicativo. Um perfil de configuração inclui, entre outras coisas, um URI que permite AWS AppConfig localizar seus dados de configuração em seu local armazenado e um tipo de configuração. AWS AppConfig suporta dois tipos de perfis de configuração: sinalizadores de recursos e configurações de forma livre. Uma configuração de sinalizador de recurso armazena dados no armazenamento de configuração AWS AppConfig hospedado e o URI é simpleshosted. Uma configuração de formato livre pode armazenar dados no repositório de configurações AWS AppConfig hospedado, em vários recursos do Systems Manager ou em um AWS serviço que se integre a. AWS AppConfig Para ter mais informações, consulte Criando um perfil de configuração de formato livre no AWS AppConfig.

Um perfil de configuração também pode incluir validadores opcionais para garantir que seus dados de configuração estejam sintática e semanticamente corretos. AWS AppConfig executa uma verificação usando os validadores quando você inicia uma implantação. Se algum erro for detectado, a implantação será interrompida antes de fazer qualquer alteração nos destinos da configuração.

nota

Se possível, recomendamos hospedar seus dados de configuração no armazenamento de configuração AWS AppConfig hospedado, pois ele oferece mais recursos e aprimoramentos.

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

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

Validadores da função AWS Lambda

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 o 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 de ValidateConfigurationActivity API StartDeployment e. 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.

Validadores do esquema JSON

Se você criar uma configuração em um documento do SSM, será necessário especificar ou criar um esquema JSON para essa configuração. Um esquema JSON define as propriedades permitidas para cada definição de configuração de aplicativo. O esquema JSON funciona como um conjunto de regras para garantir que definições de configuração novas ou atualizadas estejam em conformidade com as melhores práticas exigidas pelo 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 documento SSM, 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 do esquema JSON:

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

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

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