AWS CDK v2 でconsole.logに沼る!

ならたけぽん
2024-03-06
2024-03-06

おつかれさまです。ならたけぽんです。🌈

何か肌寒かったんですよね。🌬️
そりゃ、冬だし、寒いよね~、なんて軽~く考えていたら、
ちょっと重めの風邪の引き始めでした。💫🤒💫

春めいてきた今日この頃ですが、
季節の変わり目、みなさまもご自分の身体を大切に。🌷

というわけで、いつも余談かもしれませんが、本日「は」余談です。



いろいろCDK書いてまして、
Amazon Resource Names (ARNs) の値とか、各種IDとか、
時々、生成するオブジェクト固有の値が知りたくなるんですよね。


 VSCode使っているなら、デバッグしたらよいじゃん!😇

はい。そのとおり。😍

ただ、個人的思考なんですけど、
もうちょっと簡単に固有値が知りたくなっちゃうんですよね。🙊

そこで、いつものようにTypeScriptで書いていたので、
手っ取り早く、「console.log」でコンソール画面へ表示することにしました。

consol.log('VpcArn:', vpc.arn);

で、デプロイしてみると、

VpcArn: arn:aws:ec2:ap-northeast-1:[AWSアカウントID]:vpc/${Token[TOKEN.159]}

こうなりました。

?????😵

${Token[TOKEN.159]}って、なんじゃらほい。。。😱

「console.log」の書く位置が悪いんじゃないか、とか、
そもそも私のソースコードの書き方が悪いんじゃないか、とか、
私のPCが壊れた?、とか、
あれ、AWSで障害発生している、とか、
いろいろ、ありえないところまで行って、完全に沼りました。。。🌠

実は、AWS CDKの仕様で、
${Token[TOKEN.159]}というのはエンコード値で、
実際のデプロイ時に、要はオブジェクトが生成されるときに、
正規の値に変換されるんですね。
「console.log」ですと、デプロイ実行前のエンコード値を表示しちゃうんですね。

 うんうん。なるほど。
 あれ、じゃ、固有値見えないじゃん。
 ダメじゃん。。。😱

そう、結論。
AWS CDKで固有値を見たいときは「CfnOutput」を使いましょう!!!💖

 new cdk.CfnOutput(this, 'VpcArn', {
    value: vpc.vpcArn
});

で、デプロイしてみると、

Outputs: 
[Stack名]VpcArn.
    =  arn:aws:ec2:ap-northeast-1:[AWSアカウントID]:vpc/[VPCの実際のARN値]

こうなりました。

固有値、取れた!!!😍
取れたよ!!!💖

こうして、沼から抜け出せたおじさんは、
濡れた身体を温める間もなく、本来の業務に邁進するのでした。🏇

あれ、何か肌寒いな~。🌬️

めでたし、めでたし。🐣



というわけで、「console.log」で沼ったお話しでした。
底なし沼じゃなくて良かったですねぇ。💖

次回は閑話休題できるかな?

それでは、良き良き、AWS CDKライフを!!!🌈