При получении обнаружена ошибка проверки: Значение «[AWS:RDS::DBInstance] » в «Списке имен типов» не удалось

#amazon-ec2 #amazon-cloudformation #amazon-rds

Вопрос:

Я пытаюсь создать сервер RDS, на котором работает база данных MySQL, и получаю следующую ошибку:

1 validation error detected: Value '[AWS:RDS::DBInstance]' at 'typeNameList' failed to satisfy constraint: Member must satisfy constraint: [Member must have length less than or equal to 204, Member must have length greater than or equal to 10, Member must satisfy regular expression pattern: [A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}]

 AWSTemplateFormatVersion: 2010-09-09

Parameters:
  DBName:
    Type: String
    AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
  MUser:
    Type: String
    AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
  MPass:
    Type: String
    AllowedPattern: '[a-zA-Z0-9]*'
    Description: "It shouldn't be less than 8 characters"
    
Resources:
  MyDBInstance:
    Type: AWS:RDS::DBInstance
    Properties:
      DBName: !Ref DBName
      MasterUserPassword: !Ref MUser
      MasterUserPassword: !Ref MPass
      Engine: MySQL
      DBInstanceClass: db.t2.micro
      StorageType: gp2
      PubliclyAccessible: True
      AllocatedStorage: "20"
      DBInstanceIdentifier: !Join ["-", [ "MyDBInstance", !Ref "AWS::Region" ]]
      AvailabilityZone: !Select [1, !GetAZs ""]
 

Комментарии:

1. Привет. Я заметил, что на все ваши вопросы были даны ответы, и ни один из них так и не был принят. Принятие хороших ответов является хорошей практикой и уменьшает количество дубликатов. @PatMyron хорошо, что ты даже написал «Это сработало. спасибо», так почему бы не принять это?

Ответ №1:

Отсутствует двоеточие. Должно быть AWS::RDS::DBInstance

Рекомендуем попробовать линтер CloudFormation в VSCode, чтобы увидеть некоторые из этих ошибок встраиваемыми при создании шаблонов вместе со ссылками на автозаполнение и документацию

Комментарии:

1. существуют ли какие-либо компоновщики, которые отображали бы ошибки при вводе, а не при запуске из командной строки?

2. Спасибо, это решило мою проблему. Поддержал ваш ответ, конечно 🙂 В моем случае это было AWS::IAM:Роль — отсутствует двоеточие перед ролью.

3. Удивительно, сколько проблем создает эта небольшая опечатка в CF и сколько времени требуется, чтобы получить (довольно расплывчатое) сообщение об ошибке. Мне обязательно нужно будет схватить линтер!

4. Это должно быть отмечено как правильный ответ.