0

私は、1つのEC2がプロビジョニングされていて、すぐに使えるようになった後に、2番目のEC2インスタンスが必要なシナリオに慣れています。AWS WaitConditionプロビジョニング待ち

これは私が私がでDEPENDSONを使用するインスタンスでこの

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

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

を行うために使用いただきましだと思うWaitConditionを、持っている私は、インスタンスのUserDataの中に持っているもの1

"#!/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" 

です2番目のインスタンスは最初のインスタンスを待機します。

"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" 
0

にこの

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

変更あなたのcfn-signalコマンドから--stack--resource--regionを削除します。これらは 'リソースシグナリング'の場合にのみ使用され、待機状態ハンドルを使用したシグナリングの場合には使用されません。 (また、--idオプションを追加する必要があるかもしれませんが、マニュアルにはこれが必要とされていないと言う。)

さらに、デバッグのために、成功したに失敗する可能性があります任意の更なるクラウド型のinitエラーを表示するためにEC2インスタンス上の/var/log/cloud-init-output.logファイルを調べ信号を待機状態にしてください。

ます。また、コメントしたいと説明"Install Easy Install","GIT LFS Repo",を改行かもしれないが、例えば、"# Install Easy Install\n",、これらの構文の問題は、あなたのスクリプトが失敗する原因にはならないが、出力ログに表示されるエラーを「コマンドが見つかりません」だろう。