ค้นหาเว็บไซต์

node.js - การแก้ไขข้อผิดพลาด "app is required" ใน AWS CDK


ฉันกำลังพยายามรันฟังก์ชันนี้:

"cdk deploy --require-approval never"

แต่ฉันกำลังได้รับข้อผิดพลาดนี้:

--app is required either in command-line, in cdk.json or in ~/.cdk.json

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร? นี่คือสิ่งที่ฉันมีในไฟล์ cdk.json ของฉัน:

{
  "app": "npx ts-node --prefer-ts-exts bin/project-infra.ts",
}

และนี่คือรหัสโครงสร้างพื้นฐานของโครงการของฉัน:

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], 
    });
    
  }
}

คำตอบ #1

ข้อความนี้มักหมายความว่าคุณไม่ได้อยู่ในไดเรกทอรีหลักของโครงการ AWS CDK ของคุณเมื่อคุณสั่ง cdk synth ไฟล์ cdk.json ในไดเรกทอรีนี้ ซึ่งสร้างโดยคำสั่ง cdk init จะประกอบด้วยคำสั่งที่จำเป็นในการรัน (และจึงสังเคราะห์) แอป AWS CDK ของคุณ สำหรับแอป TypeScript ไฟล์ cdk.json เริ่มต้นจะมีลักษณะประมาณนี้:

{
  "app": "npx ts-node bin/my-cdk-app.ts"
}

นี่คือปัญหาที่พบบ่อยซึ่งถูกอธิบายในเอกสาร CDK:

การแก้ไขปัญหาที่พบบ่อยของ AWS CDK

บทความที่เกี่ยวข้อง