先日のre:InventでリリースされたAWS Application ComposerというAWSの新サービスを使ってみました。
そもそもAWS Application Composerってなんぞ
AWS Application Composerはサーバーレスアプリケーションを構築できるビジュアルエディタです。
GUI上でポチポチするだけでテンプレートを生成してくれて、簡単にデプロイできるという代物。
さっそくやってみた
①プロジェクトの作成
「Open Demo」を選ぶとAWS公式が用意したデモプロジェクトを使って作業ができます。
今回は自分でゼロから作りたかったので、「Create Project」をクリックします。
すると↓のようなモーダルが立ち上がります。
すでにSAMテンプレートを持っている場合は「Load Existing Project」をクリック、今回はSAMテンプレートを持っていないので「New Blank Project」を選択
Local file system connection modeについて、「Connected」を選択すると、ローカル上のディレクトリと接続して自動で編集内容を反映してくれます。めっちゃ便利
②ビジュアルエディタからリソースを配置
今回はよくあるS3への画像アップロード時にリサイズをしてくれるアーキテクチャを構成します。
③SAM CLIを使ってデプロイ
ConnectedモードにしていればローカルにSAMテンプレートが自動で構築されているはずなので、SAM CLIを使ってデプロイします。
SAM CLIの導入は公式ドキュメントを参考にしました。
CLI導入後以下を実行します
sam build
sam deploy --guided
するとCloudformationを使ってリソースを構築するログが流れます。
問題なく完了すればリソースの構築が完了しています。
設定された内容の確認
Lambda関数
みた感じ、Lambdaのトリガーは自分で設定しないといけない感じでしょうか・・・
トリガーの設定までやってくれてたら便利そうでしたが、ApplicationComposerのコンソールにもトリガーを設定するような箇所はないので、SAMテンプレートに追記するなりLambdaコンソールから設定するなりする必要があるのかも・・・?
と思ってたところ↓の記事を参考にテンプレートを編集したところLambdaコンソール上でもトリガーが設定されていることを確認。SAMの仕様の問題ぽいね
S3
Application Composerから設定したバケットが登録されていることを確認
パブリックアクセスをブロックすると画像のようなバケットポリシーが生成される
あとはLambda関数に処理を書いて、バケットにオブジェクトをアップロードすればええ感じに使えるんじゃないかな!
感想
めっちゃ便利だけどSAMテンプレートを手動で書けるようになってから使った方が事故った時のデバッグとかしやすい気がするので、こういう便利ツールに頼りきりにならないようにしたい