0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

簡素なサーバレス構成をAWS Application Composer(preview)でどこまで作成できるか

Last updated at Posted at 2022-12-05

はじめに

Amazon SNSからSlackやTeamsに通知する際は、Lambda越しに送信する必要があります。

構成としてはSNS->Lambda(->Slack,Teams)と単純ですが、先日発表されたAWS Application Composerで、どの程度まてテンプレートファイルを自動作成してくれるのか、試してみました。

参考

やったこと

Create projectでプロジェクトを作成します。
image.png

Select folderで、自PCのフォルダを選びます。
image.png
選択したフォルダに、自動作成されるファイルが保存されていきます。全角文字列が混じっていても大丈夫そうです。
image.png

ブラウザに許可のポップアップが出てきます。
image.png

右下のCreateで作成します。
image.png

もう一度ポップアップが出てきました。
image.png

Canvasがいじれるようになりました。
image.png

一度閉じたりリロードした際でも、保存してあれば同じものが開けます。
image.png

SNSを配置します。詳細で論理IDが変更できますので修正してみました。
image.png

Lambdaも配置します。設定項目はたくさんあります。
image.png

Package typeは2種類あります。今回はZipで。
image.png

Source pathも変えてみました。
image.png

RuntimeはPython3.9を選択。
image.png

Architectureはx86で。
image.png

Handlerもいつも使う名前にしました。
image.png

Memoryは最小にしました。
image.png

Permissionsは自由入力ができるだけで、アタッチさせるIAMロールのArnを直接指定するようです。
また環境変数も設定してみました。
image.png

2つのパーツをつなげてみました。
image.png

保存すると、テンプレートが生成されていました。環境変数やSNSからのイベントもちゃんと作成されています。
Lambda用のロググループなんかも作成してくれています。
image.png

ファイルは以下の様に自動生成されていました。

D:.
│  template.yaml
│
└─functions
    └─notifyteams
            handler.py
            requirements.txt

先ほど画面で見たテンプレートは、template.yamlに出力されています。
Pythonファイルの中身は簡素でした。ここから先を自分で作ることになるようです。

functions\notifyteams\handler.py
import json
def handler(event, context):
    # Log the event argument for debugging and for use in local development.
    print(json.dumps(event))

    return {}

注意点

使っていて気づいた点です。現時点でプレビュー版なので、一般利用時には変更されているかもしれません。

IAMロールがない

Lambda関数にアタッチさせるIAMロールは、テンプレートの中にはありませんでした。SNSと接続していることを検知して、「対象のSNSを操作するインラインポリシーが定義されたロール」まで作ってくれることを期待していましたが、IAMロールを作成してはもらえませんでした。
別途作成してPermissionsで指定するか、作成されたテンプレートを直接編集する必要があります。

2022.12.08追記

IAMロールは、今回の構成では明示的に作る必要がないため、生成されないだけでした。
他の構成(Event BridgeやStep Functions)を使った際は、IAMロールも生成されていました。

保存時点の構成で作成される

ちょくちょく保存すると、その状態でファイル群が作成され、変更しても作成されたものは残ったままになります。
以下は、デフォルトがsrcフォルダを指定しており、そのまま保存したため、(指定しなくなった)srcフォルダが残った状態になっています。
image.png

Handlerが反映されない

Handlerの部分ですが、画面上ではapp.handlerに変更し、Template.yamlには反映されます。
しかし、自動生成されるファイルはhandler.pyと、デフォルトの設定値でのファイルになっていました。

おわりに

GUIで、凡そのSAMテンプレートを作成してくれるのはだいぶ助かります。「SAMテンプレートが書けなくても作れるようになる」までのものではないですが、それでも十分便利と感じました。

早く一般利用可能になってほしい、大変期待できる新サービスでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?