簡體   English   中英

為什么這個 CDK 應用程序在 cdk deploy 中出現“內部故障”?

[英]Why is this CDK app giving "Internal Failure" with cdk deploy?

我正在嘗試創建一個具有 1 個階段和 1 個堆棧的 CodePipeline: NextStack cdk deploy我得到CREATE_FAILED | AWS::CodePipeline::Pipeline | TodolistPipeline/Pipeline Internal Failure CREATE_FAILED | AWS::CodePipeline::Pipeline | TodolistPipeline/Pipeline Internal Failure CREATE_FAILED | AWS::CodePipeline::Pipeline | TodolistPipeline/Pipeline Internal Failure ,沒有任何其他日志。 什么可能導致此錯誤?

bin.ts:

import * as cdk from '@aws-cdk/core';
import { PipelineStack } from './pipeline-stack';

const app = new cdk.App();

new PipelineStack(app, 'TodolistPipeline', {
  env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: 'us-east-1' },
});

管道堆棧.ts:

import { Construct, Stack, StackProps } from '@aws-cdk/core';
import {
  CodePipeline,
  CodePipelineSource,
  ShellStep,
} from '@aws-cdk/pipelines';
import { NextJsStage } from './front-end-stage';

export class PipelineStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const pipeline = new CodePipeline(this, 'MainDeploymentPipeline', {
      pipelineName: 'TodolistDeploymentPipeline',
      synth: new ShellStep('Synth', {
        input: CodePipelineSource.gitHub('AndyW22/todolist', 'main'),
        commands: [
          'n 16',
          'yarn install --frozen-lockfile',
          'cd cdk_stack && yarn install --frozen-lockfile && cd ../',
          'ts-node cdk_stack/compileNext.ts ',
          'npx cdk synth',
        ],
      }),
    });
    pipeline.addStage(new NextJsStage(this, 'Front-end'));
  }
}

前端階段:

import { Construct, StackProps, Stage } from '@aws-cdk/core';
import { NextStack } from './next-stack';

export class NextJsStage extends Stage {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    new NextStack(this, 'FrontEndStack', {
      env: {
        region: 'us-east-1',
      },
      analyticsReporting: true,
      description: 'Front end NextJS stack for todolist',
    });
  }
}

下一個堆棧:

import { Runtime } from '@aws-cdk/aws-lambda';
import * as cdk from '@aws-cdk/core';
import { Duration } from '@aws-cdk/core';
import { NextJSLambdaEdge } from '@sls-next/cdk-construct';

export class NextStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props: cdk.StackProps) {
    super(scope, id, props);
    new NextJSLambdaEdge(this, 'NextJsApp', {
      serverlessBuildOutDir: './build',
      runtime: Runtime.NODEJS_12_X,
      memory: 1024,
      timeout: Duration.seconds(30),
      withLogging: true,
      name: {
        apiLambda: `${id}Api`,
        defaultLambda: `Fn${id}`,
        imageLambda: `${id}Image`,
      },
    });
  }
}

您將在 CloudFormation 控制台中找到詳細的日志。 檢查第一個失敗事件,它將指出整個堆棧部署失敗的原因。

問題最終是 AWS Secrets Manager 中的密鑰位於錯誤的區域,將其添加到正確的區域解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM