LoginSignup
0
0

AWS CDK - Identifiers

Last updated at Posted at 2023-01-22

Identifiers(識別子)

識別子は、作成されたスコープ内で一意である必要があります。
使用される識別子の種類について理解しておきます。
CloudFormation を利用したことのある方であれば、さらっと読んでおく程度で良いかと思います。

Construct IDs(コンストラクト ID) のみ理解しておれば良さそうである。

Construct IDs(コンストラクト ID)

コンストラクトをインスタンス化するときに 2 番目の引数として渡されます。

以下の例では、アプリに MyBucket という識別子を持つ 2 つのコンストラクトがある例です。
1 つ目は、識別子 Stack1 を持つスタックのスコープで定義されています。
2 つ目は、識別子 Stack2 を持つスタックのスコープで定義されています。
これらは異なるスコープで定義されているため、競合は発生せず、同じアプリ内で問題なく共存できます。

from aws_cdk import App, Construct, Stack, StackProps
from constructs import Construct
from aws_cdk import aws_s3 as s3

class MyStack(Stack):
    def __init__(self, scope: Construct, id: str, **kwargs):
        super().__init__(scope, id, **kwargs)

        s3.Bucket(self, "MyBucket")

app = App()
MyStack(app, 'Stack1')
MyStack(app, 'Stack2')

Paths(パス)

CDK アプリケーションのコンストラクトは、App クラスをルートとする階層を形成します。この階層がパスです。

たとえば、前のコード例の 2 つの S3 バケットのリソースのパスは、
Stack1/MyBucket と
Stack2/MyBucket です。

スクリーンショット 2023-01-22 15.06.48.png

Unique IDs(一意の ID)

CDK では、CloudFormation テンプレート内のすべての識別子が一意である必要がある。

スクリーンショット 2023-01-22 15.07.05.png

Logical IDs(論理 ID)

CloudFormation テンプレートで、AWS リソースを表すコンストラクトのリソースの論理識別子として機能します。

前の例で作成された VPC は、CloudFormation テンプレートで、論理 ID が MyVpcF9F0CA6F である AWS::EC2::VPC リソースになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0