Я в недоумении от этого.
В 99% случаев CloudFormation довольно хорошо дает вам какое-то отладочное сообщение, с которым вы можете работать, но «Неверный запрос» оставил меня в тупике, особенно когда ресурс довольно прост для начала.
Это ресурс, который вызывает у меня проблемы (шаблон, сгенерированный Ansible, отсюда {{...}} нотации),
"DatabaseDNSRecord": {
"Type": "AWS::Route53::RecordSet",
"Properties": {
"HostedZoneId": "HOSTED_ZONE_ID",
"Name": "db.{{ item.env_name|lower }}v2.<DOMAIN>.com.",
"ResourceRecords": [
{
"Fn::GetAtt": [ "Database", "Endpoint.Address" ]
}
],
"Type": "CNAME"
},
"DependsOn": "Database"
}
Из того, что я могу сказать из документов, все, что требуется, присутствует, правильно и в правильном формате.
Единственное, о чем я могу подумать, - это добавить этот ресурс в существующий стек CloudFormation, который я создал ранее, который уже создал Database
ресурс, который для записи является AWS::RDS::DBInstance
(рад опубликовать шаблон ресурса для этого тоже, если требуется, ничего особенного) ,
Есть идеи, почему я получаю "Неверный запрос"?
Благодарю.
Изменить: я пытался это с и без TTL
, та же ошибка.
источник
TTL
работало для меня,DependsOn
было ненужным. Благодарность!Помимо TTL и DependsOn, основная идея заключается в том, чтобы система не пыталась создать набор записей, используя ссылки, которые не существуют.
Таким образом, DependsOn должен не только существовать, но и должен перечислять все ресурсы, на которые есть ссылки в определении RecordSetGroup (балансировщики нагрузки, другие записи DNS, ENI и т. Д.). Это гарантирует, что облачная информация задержит создание записей DNS, пока не будут выполнены предварительные условия.
источник
У меня похожая проблема, я только что установил
TTL
свойство, и оно отлично работает, кажется, чтоTTL
свойство является обязательным для таких наборов записей.Я не использую, так
DependsOn
как набор записей зависит"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],
от ресурса «ApplicationRds», поэтому я не вижу никакой выгоды для использованияDependsOn
источник
Если та же ошибка возникает при создании записей, у которых есть
TTL
набор, проверьте, не являются ли ониALIAS
записями -типа, так как они не должны иметь TLL (как это скопировано изAliasTarget
).источник