node.js - Fikse feilen «app is required» i AWS CDK
Jeg prøver å kjøre denne funksjonen:
"cdk deploy --require-approval never"
men jeg får denne feilen:
--app is required either in command-line, in cdk.json or in ~/.cdk.json
Hvordan kan jeg fikse dette? Dette er hva jeg har i cdk.json-filen min:
{
"app": "npx ts-node --prefer-ts-exts bin/project-infra.ts",
}
Og her er prosjektets infrastrukturkode:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';
// import * as sqs from 'aws-cdk-lib/aws-sqs';
export class ProjectInfraStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const layer = new lambda.LayerVersion(this, "BaseLayer", {
code: lambda.Code.fromAsset("lambda_base_layer/layer.zip")
compatibleRuntimes: [lambda.Runtime.PYTHON_3_9],
});
const apiLambda = new lambda.Function(this, "ApiFunction", {
runtime: lambda.Runtime.PYTHON_3_9,
code: lambda.Code.fromAsset("../main_app/"),
handler: "main.handler",
layers: [layer],
});
}
}
Svar #1
Denne meldingen betyr vanligvis at du ikke er i hovedkatalogen til ditt AWS CDK-prosjekt når du kjører cdk synth. Filen cdk.json i denne katalogen, opprettet av cdk init-kommandoen, inneholder kommandolinjen som trengs for å kjøre (og dermed syntetisere) din AWS CDK-app. For en TypeScript-app ser standard cdk.json omtrent slik ut:
{
"app": "npx ts-node bin/my-cdk-app.ts"
}
Dette er et vanlig problem som beskrives i CDK-dokumentasjonen:
Feilsøking av vanlige AWS CDK-problemer
