🐕

AWS Application Composerを触ってみよう

2023/03/09に公開約4,100字

Application Composerお試し

数日前にGAとなったサービスを使ってみました!
機能の確認とデプロイ操作をしてみるのが目的なので、最初にlambda関数を1つ、一度デプロイ後に、s3バケットを一つ、作成するだけにしています。
https://aws.amazon.com/jp/application-composer/
https://www.publickey1.jp/blog/23/application_composeraws.html

プロジェクト作成

AWSのマネジメントコンソールで、サービスを表示プロジェクトの作成をクリックします。

Create Projectというモーダルが表示されるので、Selected folderをクリックすると、エクスプローラーが立ち上がります。

ローカル環境で、適当にフォルダを用意します。

読み取りの許可を問われるので、ファイルを表示するをクリックします。

すると、チェックマークと合わせて、選択したフォルダ名が表示されますので、Createをクリックします。

もう一度質問されるので、変更を保存をクリックします。


作成画面が表示されましたので、ここからは各々自由なアーキテクチャーを画面上で作成できるようになります。

リソースの作成

左側のリソースからLambda Functionを選択して、右側にドラッグ&ドロップします。
Detailsをクリックすると、右側にプロパティ設定の画面が表示されます。

Runtimeをnode.js16、メモリは128MBに変更してみて、Saveをクリックします。
Resouce Configuration changes has been savedと表示され、更新が完了したことを確認します。

この状態で、用意していたフォルダをVSCodeで開きます。
既にtemplate.yamlとlambda関数が配置されたsrcフォルダがある状態です。

template.yamlを確認してみます。
(1件エラーが表示されていますが、拡張機能の影響で、この後に作業に影響はないです)

コードも添付しておきます。

template.yaml
Transform: AWS::Serverless-2016-10-31
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      Description: !Sub
        - Stack ${AWS::StackName} Function ${ResourceName}
        - ResourceName: Function
      CodeUri: src/Function
      Handler: index.handler
      Runtime: nodejs16.x
      MemorySize: 256
      Timeout: 30
      Tracing: Active
  FunctionLogGroup:
    Type: AWS::Logs::LogGroup
    DeletionPolicy: Retain
    Properties:
      LogGroupName: !Sub /aws/lambda/${Function}

デプロイ(Stackの作成)

デプロイをAWS SAMを用いて実施していきます。
SAM CLIは導入済の状態ですので、インストールされていない方は以下を参考にお願いします)
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/install-sam-cli.html

コマンド実行
  • yamlファイルがApplication Composerによって更新されたことを検知して、Stackも更新しても問題ない!という方
    sam sync --stack-name demo --watch
    
  • いや、yamlファイルの更新されても、都度コマンドを実行して、更新をかけたい!(勝手にStackまで更新されるのは困るよ~)
    sam sync --stack-name demo
    

Y/nを問われるので、Yを入力します。

2,3分待つと・・・デプロイが完了しました!

AWSのマネジメントコンソールからLambda関数を開き、実際に作成されていることを確認します。

VScode上でsrcフォルダのindex.jsと同一の内容であることが確認できます。

デプロイ(Stackの更新)

Application Composerの画面に戻りs3バケットを追加します。

再度VSCodeに戻ると・・・
AWSバケットに関する実装が追加されました。

  • samのsync(同期)でwatchオプションをつけていない場合
    • 再度コマンド実行
  • samのsync(同期)でwatchオプションをつけていた場合
    • yamlファイルの更新と同時に、リソースも更新が実行されます。

バケット一覧を確認すると・・・
新たにバケットが作成されています。(公開できない部分は隠してますので、ご理解ください)

触ってみて

GUIといいますが、Step Functionと同じように、画面からリソースをマウス操作で作成するだけで、様々なアーキテクチャを構築できるのは、開発速度向上につながる印象を受けました。
もう少し掘り下げてみていきたいと思います!!

Discussion

ログインするとコメントできます