Quando crio um recurso com o AWS CloudFormation, recebo um erro "Model Validation Failed" (Falha na validação do modelo) nos eventos de pilha.
Breve descrição
Os valores Type (Tipo), Allowed (Permitido), Minimum (Mínimo), Maximum (Máximo) e Pattern (padrão) são os critérios de aceitação para a criação de uma propriedade do recurso usando um modelo do CloudFormation. Se um desses valores de propriedade não estiver definido corretamente, você receberá um dos seguintes erros "Model Validation Failed" (Falha na validação do modelo):
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [type]) {Falha na validação do modelo (#PropertyName: falha na restrição de validação para palavra-chave [tipo])}
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [type]) {Falha na validação do modelo (#PropertyName: falha na restrição de validação para palavra-chave [padrão])}
- Model validation failed (#PropertyName: expected type: Number, found: String) [Falha na validação do modelo (#PropertyName: tipo esperado: número, encontrado: string)]
Observação: as mensagens de erro anteriores são exemplos. No erro que você recebe, PropertyName (Nome da propriedade) é especificado.
Resolução
- No evento de pilha do CloudFormation, identifique a propriedade do tipo de recurso em que houve falha. Por exemplo, Namespace é uma propriedade do recurso AWS::CloudWatch::Alarm.
- Identifique o tipo de recurso que está apresentando o erro. Por exemplo, AWS::CloudWatch::Alarm.
- Procure as propriedades do recurso.
- Compare os valores de propriedade definidos no modelo com os valores de propriedade corretos encontrados na etapa 3.
Observação: algumas propriedades não incluem valores de limite mínimo ou máximo de caracteres.
- Se os valores de propriedade do recurso não atenderem aos critérios de aceitação, edite o modelo com os valores necessários.
- Atualize a pilha do CloudFormation com o novo modelo.
Veja a seguir um exemplo de critérios de aceitação para a propriedade Namespace para o tipo de recurso AWS::CloudWatch:Alarm:
Obrigatório: não
Tipo: string
Mínimo: 1
Máximo: 255
Padrão: [^:].*
A atualização requer: nenhuma interrupção
Observação: para que os critérios de namespace sejam aceitos, o tipo deve ser String, o limite de caracteres deve estar entre 1 e 255 e o padrão deve ser [^:]. *.