appの結果、次のファイル群が生成されます。tsconfig.json実装さて、IAMユーザを作るための実装に入りますが、その前にIAMのリソースを扱うには更に追加のモジュールが必要です。(実際にはトランスパイルされたJS)。インポートしてインスタンス生成をしているだけです。実装対象となるファイルということです。次の様に実装しました。AWSの提供するサンプルを参考に実装して見たので、コンストラクタに全コードを書いてしいましたが、適宜メソッドに切り出しても構わないだろうと思います。}}変数userNamesをforEachで回して複数のユーザを作っています。このuserNamesを変更するだけでユーザの作成、削除ができるはずです。YAMLに比べるととてもスッキリ書けたのではないかと思います。デプロイ前にはビルドが必要なので次のコマンドを実行します。コードがトランスパイルされ、Javascriptのコードが出力されます。ビルドが済んだら次のコマンドでデプロイできます。deploy実行結果は次の様に出力されます。Formationのチェンジセットが作られてリソースが生成される様子が出力されています。お、狙い通りuserNamesの要素数分、IAMユーザが作成されたようです。synthを実行すれば出力されます。生成されたリソースの確認AWSコンソールで生成されたものを確認してみます。スタックが作成され、コード通りのリソースが作成されています。3件作成されています。作った場合、Outputで出力しないとsecretAccessKeyの値が見れないですが、それもちゃんと出力されています。出力Outputに出力してしまうとsecretAccessKeyがいつでも見れてしまうので、スタックを参照できる人の管理が重要です。CFnで作るユーザの権限を大きくしすぎないようにするといいと思います。FormationのOutputにせず、console.logで出力するだけにしたかったのですが、無理そうです。ユーザを作っているforEachの中で次のコードを追加してみました。Formationスタック内での参照を表しているであろう文字列のみでした。Formationが作っているのだなと思います。IAMリソース次に作られたIAMリソースをそれぞれ確認してみます。インラインポリシーも指定した名前でちゃんとできています。グループポリシーの中身もこの通り。インラインポリシーユーザも次の通り作られています。IAMユーザグループに所属し、ポリシーも割り当てられています。要らなくなったら次のコマンドで削除できます。destroyの出力IAMのリソースの場合、残るものもなく綺麗サッパリなくなります。パッケージのアップデートが面倒そう所感AWSの各リソースの知識はやはり必要なものの、慣れないJSONやYAMLの仕様と格闘するより、使い慣れたTypescriptで書けるのがやりやすいです。私はVSCodeを使っているのですが、マウスオーバしたメソッドのコメントも参照できます。各メソッドの引数はインタフェースが定義されているでどんな値を設定すればいいかもわかりやすいです。FormationのDSLとして用意された使いづらい関数を使わなくてもよく、普通に文字列中の変数展開ができ楽々です。デメリットはこれといったものが思いつかなかったのですが、強いて言うならCDK自身、そして依存しているnpmのアップデートに追従するのがちょっと面倒そうかなということくらいですかね。Formationの作成、運用が楽になるのではないでしょうか。私はYAMLに戻れないかも。9ee738f009ab26daf9c4205b53b097ff6fab8368最後にアクトインディではエンジニアを募集しています。actindi.netもちろん、開発環境用にはメアドやユーザ名、パスワードなどの情報は書き換えてマスクしています。morishitaです。CDKでLambdaをデプロイしてみた。morishitaです。インフラエンジニアのyamamotoです。...2018-09-07VirtualAlexaによるテストドリブンなAlexaスキル開発morishitaです。CDKでALBを作成する個人開発アプリをDockerでコンテナ化してみたまつもとゆきひろさんの講演に行ってきました。(9)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。