Я пытаюсь создать шлюз VPN и запись в таблице маршрутизации, для которой нужен VPN-шлюз в качестве зависимости. Из-за состояния гонки запись таблицы маршрутов (т. Е. RouteA) не может найти шлюз VPN к моменту его создания. Я попытался добавить WaitCondition для решения этой проблемы, но для этого нужно условие успеха. Просматривая документацию AWS, я не смог найти способ отправить сигнал об успешном завершении после создания VPN-шлюза. Вот код:
"VPNGateway" : {
"Type" : "AWS::EC2::VPNGateway",
"Properties" : {
"Type" : "ipsec.1"
}
},
"WaitHandle" : {
"Type" : "AWS::CloudFormation::WaitConditionHandle"
},
"WaitCondition" : {
"Type" : "AWS::CloudFormation::WaitCondition",
"DependsOn" : "VPNGateway",
"Properties" : {
"Handle" : { "Ref" : "WaitHandle" },
"Timeout" : "300"
}
},
"RouteA": {
"Type": "AWS::EC2::Route",
"DependsOn": ["VPNGateway"],
"Properties": {
"DestinationCidrBlock": {"Ref": "CidrBlock"},
"RouteTableId": {"Ref": "PrivateRouteTableA"},
"GatewayId": {"Ref": "VPNGateway"}
}
}