Я создаю шаблон облачной информации, который создает стек, слои и приложения. Приложения имеют конфигурацию базы данных, как Datasources
:Использование customResource для регистрации уровня RDS для стека opsworks
"AdminApp": {
"Type": "AWS::OpsWorks::App",
"Properties": {
"AppSource" : {
"Type" : "git",
"Url" : "git://github.com:myrepo/adminapp.git",
"Revision" : "master"
},
"DataSources":[{
"Arn" : { "Ref" : "RegisterRDStoStack" },
"DatabaseName" : "fadmin",
"Type" : "RdsDbInstance"
}],
"Description": "Administration",
"Name" : "admin-api",
"Shortname" : "admin_api",
"StackId" : {"Ref": "Stack"},
"Type" : "php"
}
},
База в DataSources собственности sould быть зарегистрирован первым в стек, так что приложения могут иметь доступ к нему. Как AWS не реализовали еще создание слоя RDS в opsworks стека с помощью CloudFormation, поэтому я создал CustomResource как обходной путь:
"RegisterRDStoStack" : {
"Type": "Custom::RDSLayer",
"Version" : "1.0",
"Properties" : {
"ServiceToken": {"Ref" : "RDSInstanceARN"},
"StackId" : {"Ref" : "Stack" },
"User" : {"Ref" : "UserDB" },
"Password" : {"Ref" : "PasswordDB" }
}
},
При тестировании шаблона я получаю эту ошибку:
CREATE_FAILED Custom::RDSLayer RegisterRDStoStack Invalid service token
Похоже, что есть ошибка, но не знаю, что именно. Я правильно предоставил ARN базы данных. Что я должен сделать, чтобы сделать эту работу, пожалуйста? Есть идеи ?
который лямбда функция? Сделать что? – JavaQueen
@Cloudgls Функция Lambda, содержащая настраиваемую логику инициализации, которую вы хотите вызвать из своего пользовательского ресурса. Чтобы делать то, что вы хотите делать с вашим пользовательским ресурсом. – wjordan
gotcha, спасибо – JavaQueen