AWS : TypeScriptを用いたCDKにおける可用性ゾーンを用いた既存サブネットの使用

1518 ワード

あなたがこの誤りを見るならば、あなたは一人でありません.

Error: You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using Subnet.fromSubnetAttributes()


私のCDKコードは既存のサブネットを持つ既存のVPCを参照しています.VPCとサブネットが存在するので、私は時間の各々の前のIDを知っています.
特定の他のCDKオブジェクトがSubnetオブジェクトに存在する可用性ゾーンプロパティを必要とするので、問題は起こります、しかし、サブネット.fromsubnety ()メソッドは、そのプロパティを返しません.エラーメッセージが言うように、サブネットを使用する必要があります.fromSubnetAttributes ()メソッド.これは、subnetidと可用性ゾーンのプロパティの両方を設定します.
const subnetIds = [
    "Subnet1_id",
    "Subnet2_id",
];

const azones = new Map<string, string>([
    ["Subnet1_id, "s1_avaiability_zone"],
    ["Subnet2_id, "s2_avaiability_zone"],
]);

const subnets = subnetIds.map(subnetId => Subnet.fromSubnetAttributes(this, subnetId, {
    subnetId: subnetId,
    availabilityZone: azones.get(subnetId)
}));
const subnetSelection = { subnets };

まず、サブネットIDの配列を作ります.次に、サブネットIDとそのアベイラビリティゾーンのマップ(キー、値ペア)を構築します.map ()関数を使用すると、サブネットオブジェクトの配列が返されます.サブネットを使用しているので、これらのサブネットオブジェクトには可用性ゾーンプロパティが含まれます.fromsubnettributes ().最後に、次のCDKオブジェクトから期待されるラッパーオブジェクトにサブネット配列を入れます.
その記事を私がこの解決策を開発するのを手伝ったガイモートンに叫びなさい.https://python.plainenglish.io/importing-existing-vpc-and-subnets-into-a-cdk-python-project-a707d61de4c3を参照.