2017-01-26 9 views
0

私は、スタック、レイヤ、アプリケーションを作成する雲のテンプレートを作成しています。アプリケーションは、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" 
     } 
    }, 

アプリケーションがそれにアクセスすることができるようにプロパティデータソース内のデータベースは、スタックに最初に登録されsould。

"RegisterRDStoStack" : { 
    "Type": "Custom::RDSLayer", 
    "Version" : "1.0", 
    "Properties" : { 
    "ServiceToken": {"Ref" : "RDSInstanceARN"}, 
    "StackId" : {"Ref" : "Stack" }, 
    "User" : {"Ref" : "UserDB" }, 
    "Password" : {"Ref" : "PasswordDB" } 
    } 
}, 

私はこのエラーを取得テンプレートテストする場合:

をAWSがCloudformationを使用してスタックopsworksではまだRDS層の作成を実装していませんでしたので、私は回避策としてCustomResourceを作成したよう
CREATE_FAILED Custom::RDSLayer RegisterRDStoStack Invalid service token 

エラーがあるようですが、正確に何がわからないのでしょうか。私はデータベースのARNを適切に提供しました。私はこの仕事をしてくれるようにするために何をしなければなりませんか?何か案が ?

答えて

0

Custom ResourceServiceTokenパラメータとしてラムダ関数のARN(例:{"Ref": "MyLambdaFunction"})を指定する必要があります。アマゾンSNSのトピックARNまたはラムダ関数ARNなどのサービスにアクセスするためにサービスプロバイダによってテンプレートの開発者に与えられた

サービストークン:ServiceTokenのマニュアルを参照してください。サービストークンは、スタックを作成しているのと同じリージョンのものでなければなりません。

+0

ラムダ機能?何をすべきか? – JavaQueen

+0

@Cloudglsカスタムリソースから呼び出すカスタムプロビジョニングロジックを含むLambda関数。あなたがカスタムリソースで何をしたいのであれ、何でもしてください。 – wjordan

+0

gotcha、ありがとう – JavaQueen

関連する問題