0

Я пытаюсь изучить Cloudformation im stuck with senario, где мне нужен второй экземпляр EC2, запущенный после того, как один EC2 будет подготовлен и будет полезен.AWS WaitCondition Ждите предоставления

Это то, что я имею в UserData из Instance один

"#!/bin/bash\n", 
"#############################################################################################\n", 
"sudo add-apt-repository ppa:fkrull/deadsnakes\n", 
"sudo apt-get update\n", 
"curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -\n", 
"sudo apt-get install build-essential libssl-dev python2.7 python-setuptools -y\n", 
"#############################################################################################\n", 
"Install Easy Install", 
"#############################################################################################\n", 
"easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz\n", 
"#############################################################################################\n", 
"#############################################################################################\n", 
"GIT LFS Repo", 
"#############################################################################################\n", 
"curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash\n", 
"#############################################################################################\n", 

"cfn-init", 
"   --stack ", 
{ 
"Ref": "AWS::StackName" 
}, 
"   --resource UI", 
"   --configsets InstallAndRun ", 
"   --region ", 
{ 
"Ref": "AWS::Region" 
}, 
"\n", 

"#############################################################################################\n", 
"# Signal the status from cfn-init\n", 
"cfn-signal -e 0 ", 
"   --stack ", 
{ 
"Ref": "AWS::StackName" 
}, 
"   --resource UI", 
"   --region ", 
{ 
"Ref": "AWS::Region" 
}, 
" ", 
{ 
"Ref": "WaitHandleUIConfig" 
}, 
"\n" 

У меня есть WaitCondition, который я думаю, Что используется, чтобы сделать это

"WaitHandleUIConfig" : { 
     "Type" : "AWS::CloudFormation::WaitConditionHandle", 
     "Properties" : {} 
    }, 

    "WaitConditionUIConfig" : { 
     "Type" : "AWS::CloudFormation::WaitCondition", 
     "DependsOn" : "UI", 
     "Properties" : { 
     "Handle" : { "Ref" : "WaitHandleUIConfig" }, 
     "Timeout" : "500" 
     } 
    } 

В Instance я использовать DependsOn в второй экземпляр для ожидания первого экземпляра.

"Service": { 
    "Type": "AWS::EC2::Instance", 
    "Properties": { 
    }, 
    "Metadata": { 
    "AWS::CloudFormation::Designer": { 
     "id": "1ba546d0-2bad-4b68-af47-6e35159290ca" 
    }, 
    }, 
    "DependsOn":"WaitConditionUIConfig" 
} 

это не работает. Я продолжаю получать ошибку

WaitCondition истекло. Получено 0 условий, когда ожидается 1

Любая помощь будет принята с благодарностью.

Благодарности

ответ

0

поставить кавычки вокруг ручки

Изменить этот

" ", 
{ 
"Ref": "WaitHandleUIConfig" 
}, 
"\n" 

этой

" \"", 
{ 
"Ref": "WaitHandleUIConfig" 
}, 
"\"\n" 
0

--stack Удалить, --resource и --region из вашей команды cfn-signal. Они используются только тогда, когда «сигнализация ресурсов», а не при сигнализации с использованием ручки состояния ожидания. (Также может потребоваться добавить --id вариант, но документация говорит, что это не требуется.)

Для дальнейшей отладки, рассмотрит /var/log/cloud-init-output.log файл на экземпляре EC2, чтобы просмотреть любую дополнительную облачные инициализации ошибки, которые могли бы не в состоянии успешно отправьте сигнал в состояние ожидания.

Вы также можете комментировать и новую строку описания "Install Easy Install", и "GIT LFS Repo",, например, "# Install Easy Install\n",, эти вопросы синтаксиса не должны вызывать сценарий к сбою, но будет выход «команда не найдена» ошибки появляться в журнале.