L3 및 L2 구성에서 CDK 이스케이프 해치를 활용해 하위 수준 구조 개체를 검색하려면 어떻게 해야 하나요?

3분 분량
0

AWS Cloud Development Kit(AWS CDK) 이스케이프 해치를 사용해 L2 및 L3 구성의 하위 개체를 검색하고 싶습니다.

간략한 설명

AWS CDK 추상화 계층에는 세 가지가 있습니다.

  • L1 구성에서는 관련 AWS CloudFormation 리소스 유형에 매핑되는 1:1 관계를 갖습니다. 이것이 AWS CDK의 가장 기본적인 구성 계층입니다.
  • L2 구성에서는 L1 구성 여러 개를 래핑할 수 있으며, 관련 리소스 유형의 L1 구성이 기본 하위 개체입니다. 다른 L1 구성 하위 개체는 L2 하위 개체의 지정된 속성을 기반으로 AWS CloudFormation 템플릿에 합성됩니다.
  • L3 구성은 AWS CDK 추상화 계층의 최상위 수준이며 L2 및 L1 구성을 여러 개 래핑할 수 있습니다.

자세한 내용은 추상화 및 이스케이프 해치를 참조하세요.

​해결 방법

L3 구성이 있는 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에서 하위 개체를 검색하려면 AWS CDK를 사용하세요.

참고: 이 단계에서는 Python 프로그래밍 언어를 사용합니다. 다른 프로그래밍 언어에서도 비슷한 단계를 사용합니다. 사용 중인 프로그래밍 언어에 맞게 코드 구문을 조정하세요.

Python에서 L3 구성을 사용하는 Amazon EKS 클러스터 예제:

vpc = ec2.Vpc(self, "Vpc",
            ip_addresses=ec2.IpAddresses.cidr("192.168.0.0/25")
        )

eks_object = eks.Cluster(self, "HelloEKS",
            version=eks.KubernetesVersion.V1_25,
            vpc=vpc,
            vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)]
        )
  1. node.find_all() 속성을 사용해 Amazon EKS 클러스터에서 L3 구성의 모든 하위 개체를 검색합니다.
for child in eks_object.node.find_all():
            print(child.node.id)

앞의 명령을 사용하면 L3 구성의 모든 하위 ID가 출력됩니다.

출력 예시:

HelloEKS

...
NodegroupDefaultCapacity
NodeGroupRole
...
  1. L3 구성의 하위 ID를 출력한 후 node.find_child() 속성을 사용하여 원하는 하위 ID를 검색합니다.

중요: AWS Command Line Interface(AWS CLI) 명령을 모두 확인하고 예제 문자열의 모든 인스턴스를 사용자 값으로 바꾸세요. 예를 들어 example_child_id를 대상에 해당하는 하위 ID로 바꿔야 합니다.

l2_nodeGroup = eks_object.node.find_child(example_child_id)

이 명령을 사용하면 원하는 하위 ID의 L2 구문이 출력됩니다.

출력 예시:

<aws_cdk.aws_eks.Nodegroup object at 0x7ffa9c7b2910>

참고: 변수를 사용해 l2_nodeGroup을 호출하여 Nodegroup 속성, 특성, 메서드를 호출하고 관련 리소스를 수정할 수 있습니다.

  1. node.find_all() 특성을 사용해 L2 구성의 하위 개체를 모두 검색합니다.
for child in l2_nodeGroup.node.find_all():
         print(child.node.id)

앞의 명령을 사용하면 L2 구성에 있는 하위 ID 모두가 출력됩니다.

출력 예시:

NodegroupDefaultCapacity
NodeGroupRole
ImportNodeGroupRole
  1. L2 구성에 있는 하위 ID가 출력되면 node.find_child() 특성을 사용해 원하는 하위 ID를 검색합니다.
l2_nodeGroup_role = l2_nodeGroup.node.find_child(example_child_id)
     print(l2_nodeGroup_role)

앞의 명령을 사용하면 L2 계층의 개체가 aws_iam.Role 레벨에서 반환됩니다.

  1. aws_iam.Role 수준에 있는 경우 다음 node.default_child 특성을 사용해 L1 CfnRole 구성 개체에 도달합니다.
l1_nodeGroup_role = l2_nodeGroup_role.node.default_child
        print(l1_nodeGroup_role)

앞의 명령을 사용하면 L1 계층의 기본 하위 계층이 반환됩니다.

참고: node.find_all() 또는 node.default_child를 사용하여 하위 개체를 검색하는 경우 해당 구성의 기능을 사용해 CloudFormation 템플릿에 대한 제어 기능을 향상시킬 수 있습니다.

그래도 하위 개체를 검색할 수 없는 경우 AWS 지원팀에 문의하거나 GitHub 웹사이트에서 AWS CDK 이슈에 대한 새 이슈를 만드세요.

관련 정보

CDK 상위 수준 구성과 CloudFormation 리소스 간에 차이가 있는 경우 리소스 속성 값을 사용자 지정하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음