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

Relaterte artikler