Triển khai ứng dụng

Khởi động CDK trong tài khoản của bạn

  1. Sao chép đoạn mã này.
npx cdk bootstrap aws://ACCOUNT-NUMBER/REGION
  1. Thay thế ACCOUNT-NUMBER với Account ID.
  2. Thay thế REGION với Region ID
  3. Dán và chạy tại terminal.

Create CDK Infrastructure 5. Sau khi khởi động, đi đến CloudFormation. Bạn sẽ thấy một stack tên là CDKToolkit vừa được tạo.

Create CDK Infrastructure

Xây dựng và triển khai ứng dụng CDK

Sau khi chúng ta khởi động xong tài khoản và vùng AWS, chúng ta đã sẵn sàng xây dựng và triển khai ứng dụng CDK.

  1. Tại terminal của Cloud9, xây dựng ứng dụng CDK.
npm run build

Create CDK Infrastructure

  1. Nếu không xuất hiện lỗi thì quá trình này đã thành công. Bây giờ chúng ta có thể đẩy tất cả code lên GitHub repository.
git add .
git commit -m "empty pipeline"
git push

Create CDK Infrastructure

Nhập GitHub username và access token nếu được yêu cầu.

  1. Triển khai ứng dụng CDK lên AWS.

npx cdk deploy

Nhập Y nếu được yêu cầu.

Create CDK Infrastructure

  1. Sau khi ứng dụng CDK được triển khai lên AWS thành công, một CloudFormation tên CdkPipelineStack sẽ được tạo.
  2. Đi đến Stack of CloudFormation để kiểm tra.

Create CDK Infrastructure

  1. CloudFormation stack này sẽ tạo một Empty CodePipeline tên MyServicePipeline.
  2. Đi đến CodePipeline để thấy đường ống của bạn.

Create CDK Infrastructure

  1. Nhấn vào pipeline để thấy các giai đoạn.

Create CDK Infrastructure

Thêm một giai đoạn Deploy cho môi trường Elastic Beanstalk

Cho đến nay, chúng ta đã cung cấp một đường ống rỗng và đường ống đó vẫn chưa triển khai ứng dụng web của chúng ta. Bây giờ, chúng ta sẽ tạo một giai đoạn để triển khai ứng dụng lên Elastic Beanstalk.

  1. Tạo một tệp mới lib/eb-stage.ts.
  2. Dán đoạn code bên dưới:
import {  Stage } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { EBEnvProps, EBApplnStack } from './eb-appln-stack';

/**
* Deployable unit of web service app
*/
export class CdkEBStage extends Stage {
    
constructor(scope: Construct, id: string, props?: EBEnvProps) {
    super(scope, id, props);

    const service = new EBApplnStack(this, 'WebService', {
        minSize : props?.minSize, 
        maxSize : props?.maxSize,
        instanceTypes : props?.instanceTypes,
        envName : props?.envName
    } );

}
}

Create CDK Infrastructure

  1. Thêm dòng code mới vào lib/cdk-pipeline-stack.ts.
import { CdkEBStage } from './eb-stage';
  1. Thêm đoạn code vào phần bên dưới của đoạn This is where we add the application stages.
// deploy beanstalk app
// For environment with all default values:
// const deploy = new CdkEBStage(this, 'Pre-Prod');

// For environment with custom AutoScaling group configuration
const deploy = new CdkEBStage(this, 'Pre-Prod', { 
    minSize : "1",
    maxSize : "2"
});
const deployStage = pipeline.addStage(deploy); 

Create CDK Infrastructure

  1. Chạy npm run build và đẩy code lên GitHub repository.
npm run build
git add .
git commit -m 'Add Pre-Prod stage'
git push

Create CDK Infrastructure