make(旧integromat)を使ってLambdaを実行する
1.はじめに
make(旧integromat, 以下本記事ではmakeで記します)からLambdaを呼び出す手順です。
ただそれだけなのですが、makeに関する情報が少なく難儀したので、やったことを書き留めました。
2.今回やること
こんな感じのパイプラインを作ってLambdaを実行します。
Slackのチャンネルに投げたメッセージをトリガーにして、OutgoingWebhooksからmakeのWebhooksを呼び出す。
WebhooksはSlackやGmailに代替しても同じことができると思います。
3.アプリの設定
一般的な手順で各アプリに対して設定を行い、パイプラインを作ります。
3-1.Slack
適当なチャンネルを作成する。パブリックとプライベートどちらでも構いません。
このチャンネルにキーワードを投げるとmakeが反応するようにします。
3-2.make
この段階ではサインアップしてアカウントだけ作っておく。
リージョンはUS, EUどちらでもOKです。
3-3.AWS(Lambda)
Lambdaの実行ログに文字列をprintするだけのかんたんなpythonプログラムです。
公式に良い感じのコードがあったのでそれをコピペして不要な箇所を削除しただけ。
import boto3
def lambda_handler(event, context):
print('started your instances: ')
けどちゃんと動くのでAWSすごいな!っていつも思います。
引用元はこちら。EC2の起動・停止プログラムのサンプルです。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/start-stop-lambda-eventbridge/
テストで動かして、CloudWatch Logsにstarted your instances:
が出力されればLambdaの準備は完了です。
3-4.AWS(IAM)
今回はmake専用のIAMユーザを作成します。
GUIは使用しないのでCLIのみ、LambdaのFullAccessをアタッチする。
いつも使ってるユーザとかシステムユーザ的なアカウントがあればそちらでもいいと思います。
アクセスキーとシークレットキーをmakeの設定で使います、控えておいてください。
4.Scenarioを作る
ここからmakeの設定を行います。
4-1.Webhooksモジュール
適当に作る。GUIがわかりやすいので迷わないはず。
このタイミングでhookするURLが生成されるので、SlackのOutgoingWebhookを先ほど作ったチャンネルにアプリ追加で紐づけてあげます。
手順は一般的なやり方で設定する。キーワードも任意で構いません。
4-2.Lambdaモジュール
関数の呼び出しにはInvoke a Functionを使います。
Connection
に先ほど作成したIAMユーザのアクセスキーとシークレットキーを入力、認証が通ればリストからLambdaが選べます。
4-3.補足:Bodyについて
Body
には{ "key":"value" }形式でLambdaに値を渡せます。
渡せる値はWebhooksで確認できます。
実際に設定する時はこんな感じ。
Lambda側でkey
を変数として宣言してあげれば、渡した値(今回だと文字列Run Function
)をプログラムで利用可能です。
5.実行してみる
あとはシナリオを保存し、Run onceでテストしてみたり、シナリオをONにして実行してみてください。
Slackのチャンネルにキーワードをメッセージすると、make経由でLambdaが動くと思います。
Errorが出てもGUIがわかりやすく教えてくれます。エラーログも出力される。
読んで対処してみてください。
6.おわりに
実際に業務で使うとなるとRouterやFilterを使ったりしてもっと複雑になると思いますが、ベースはこれでOKかと。
細かいところを端折っていますが、makeのGUIがめちゃくちゃわかりやすいのであまり迷わないと思います。
以上、ぼくもしばらくこの手のSaaSを使う機会が無さそうなので備忘録を兼ねた記事でした。
どなたかのお役に立てると嬉しいです!
Author And Source
この問題について(make(旧integromat)を使ってLambdaを実行する), 我々は、より多くの情報をここで見つけました https://qiita.com/sosat/items/f0359139b2e72daf686c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .