AWS CDKを利用していて下記のエラーが発生してハマっていました。
No stack could be identified for the construct at path
pathのコンストラクトに対してスタックを識別できませんでした(Google翻訳)
だそうです。
> cdk synth -v
(略)
No stack could be identified for the construct at path
Subprocess exited with error 1
Error: Subprocess exited with error 1
at ChildProcess.proc.on.code (/Users/xxx/.anyenv/envs/ndenv/versions/v10.11.0/lib/node_modules/aws-cdk/lib/api/cxapp/exec.ts:110:23)
at ChildProcess.emit (events.js:182:13)
at ChildProcess.EventEmitter.emit (domain.js:442:20)
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
エラー再現
環境構築は以下のような感じ。AWS CDKは利用できる前提で。
> cdk --version
1.2.0 (build 6b763b7)
> mkdir cdk-error-test
> cd cdk-error-test
> cdk init app --language=typescript
実装は以下となります。Outputs
の定義のみ。
import cdk = require('@aws-cdk/core');
export class UseCdkEc2Stack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new cdk.CfnOutput(scope, 'hoge', { value: 'hoge' });
}
}
そしてエラーとなります。
> cdk synth -v
(略)
No stack could be identified for the construct at path
Subprocess exited with error 1
Error: Subprocess exited with error 1
at ChildProcess.proc.on.code (/Users/xxx/.anyenv/envs/ndenv/versions/v10.11.0/lib/node_modules/aws-cdk/lib/api/cxapp/exec.ts:110:23)
at ChildProcess.emit (events.js:182:13)
at ChildProcess.EventEmitter.emit (domain.js:442:20)
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
原因
new cdk.CfnOutput(scope, 'hoge', { value: 'hoge' });
と第一パラメータをscope
としてたのですが、this
じゃないとだめでした・・・圧倒的・・・ケアレスミス・・・
import cdk = require('@aws-cdk/core');
export class UseCdkEc2Stack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new cdk.CfnOutput(this, 'hoge', { value: 'hoge' });
}
}
tsファイルを修正後npm run build
コマンドを実行しないとさらにハマりますのでご注意ください。
> npm run build
> cdk synth -v
(略)
Outputs:
hoge:
Value: hoge
Resources:
CDKMetadata:
Type: AWS::CDK::Metadata
Properties:
Modules: aws-cdk=1.2.0,@aws-cdk/core=1.2.0,@aws-cdk/cx-api=1.2.0,jsii-runtime=node.js/v10.11.0
constructor
やsuper
のパラメータ指定に引きづられて気がつくのに相当時間がかかりました。
エラーメッセージからだとさっぱりみえてこなかったので、皆さまお気をつけください。
参考
AWS CDK - неопределенная ошибка при создании службы AWS ECS - amazon-web-services | Qaru
http://qaru.site/questions/17927695/aws-cdk-vague-error-while-creating-an-aws-ecs-service