다른 스택의 리소스를 CDK로 참조하려는 경우

10453 단어 AWSCDKtech

다른 스택의 리소스를 참조하려면 CDK를 사용하십시오.


그럴 때가 많죠.절차를 복습해 봅시다.
이 글에는 공유하고 싶은 자원의 창고MainStack, 공유하고 싶은 자원의 창고SubStack가 있다.

공유할 자원 내보내기


우선 자원을 공유하고 싶은 창고에서 자원을 내보냅니다.
main-stack.ts
import { Stack, StackProps } from "aws-cdk-lib";
import { Vpc, SubnetType } from "aws-cdk-lib/aws-ec2";
import { Construct } from "constructs";

export class MainStack extends Stack {
  public readonly vpc: Vpc; // ✅ 別スタックで読み込めるようにする

  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const vpc = new Vpc(this, "vpc", {
      cidr: "10.0.0.0/16",
      maxAzs: 2,
      subnetConfiguration: [
        {
          name: "Public",
          cidrMask: 24,
          subnetType: SubnetType.PUBLIC,
        },
      ],
    });

    this.vpc = vpc; // ✅ リソースを出力する
  }
}
상술한 평론 부분이 있는 곳에서 자원을 공유하다.
먼저 출력을 하고 공유하는 설정을 하면 다른 창고에서 MainStack의 자원을 참조할 수 있다.

App 콘크리트로 견적


그리고 bin 아래 앱 구조를 만든 파일에서 SubStack의 자원을 MainStack에 전달한다.
sample.ts
import * as cdk from "aws-cdk-lib";
import { MainStack } from "../lib/main-stack";
import { SubStack } from "../lib/sub-stack";

const app = new cdk.App();

const mainStack = new MainStack(app, "MainStack", {});

new SubStack(app, "SubStack", {
  vpc: mainStack.vpc,// ここでリソースを渡す
});
아까처럼 주석을 달다.
공유 자원의 창고를 변수화하고 상기 설명을 통해 파라미터를 설정하십시오.

다른 스택의 리소스 참조


마지막으로 다른 창고의 자원을 참고하세요.
sub-stack.ts
import { Stack, StackProps } from "aws-cdk-lib";
import { SecurityGroup, Vpc } from "aws-cdk-lib/aws-ec2";
import { Construct } from "constructs";

// ✅ 別スタックからのリソースを扱えるように interface を作成
interface SubStackProps extends StackProps {
  vpc: Vpc;
}

export class SubStack extends Stack {
  // ✅ Props は事前に定義した SubStackProps を使う
  constructor(scope: Construct, id: string, props: SubStackProps) {
    super(scope, id, props);

    new SecurityGroup(this, "test-sg", {
      vpc: props.vpc, // ✅ MainStack のリソースを使用
    });
  }
}
인터페이스를 만들고 이 창고의 Princes를 준비합니다.MainStack에서 공유된 자원을 사용할 때props.vpc 등 설명에서 사용할 수 있다.

총결산


복습 정도의 기사입니다.참고가 됐으면 좋겠어요.
최고 CDK🚀
끝맺다

좋은 웹페이지 즐겨찾기