はじめに
LambdaのイベントソースマッピングはAWS CLIで操作できますが、多くのコマンドがUUID指定なので使いづらいと感じ、jqコマンドを使ってコマンド一発で実行できるようにしたときのメモです。
コマンド
イベントソースマッピングの作成と開始
以下コマンドの<functionName><eventSourceArn>を置換する。
aws lambda create-event-source-mapping --function-name <functionName> --event-source-arn <eventSourceArn>
イベントソースマッピングの無効化
UUID指定
以下コマンドの<uuid>を置換する。
aws lambda update-event-source-mapping --uuid <uuid> --no-enabled
LambdaファンクションArn指定
以下コマンドの<functionArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.FunctionArn | contains("<functionArn>")) | .UUID' | \
xargs -I{} aws lambda update-event-source-mapping --uuid {} --no-enabled
イベントソースArn指定
以下コマンドの<eventSourceArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.EventSourceArn | contains("<eventSourceArn>")) | .UUID' | \
xargs -I{} aws lambda update-event-source-mapping --uuid {} --no-enabled
イベントソースマッピングの有効化
UUID指定
以下コマンドの<uuid>を置換する。
aws lambda update-event-source-mapping --uuid <uuid> --enabled
LambdaファンクションArn指定
以下コマンドの<functionArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.FunctionArn | contains("<functionArn>")) | .UUID' | \
xargs -I{} aws lambda update-event-source-mapping --uuid {} --enabled
イベントソースArn指定
以下コマンドの<eventSourceArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.EventSourceArn | contains("<eventSourceArn>")) | .UUID' | \
xargs -I{} aws lambda update-event-source-mapping --uuid {} --enabled
イベントソースマッピングの削除
UUID指定
以下コマンドの<uuid>を置換する。
aws lambda delete-event-source-mapping --uuid <uuid>
LambdaファンクションArn指定
以下コマンドの<functionArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.FunctionArn | contains("<functionArn>")) | .UUID' | \
xargs -I{} aws lambda delete-event-source-mapping --uuid {}
イベントソースArn指定
以下コマンドの<eventSourceArn>を置換する。
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.EventSourceArn | contains("<eventSourceArn>")) | .UUID' | \
xargs -I{} aws lambda delete-event-source-mapping --uuid {}
イベントソースマッピングの件数
イベントソースマッピングの総件数
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | .State' | wc -l
無効なイベントソースマッピングの件数
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.State=="Disabled") | .State' | wc -l
有効なイベントソースマッピングの件数
aws lambda list-event-source-mappings | \
jq -r '.EventSourceMappings[] | select(.State=="Enabled") | .State' | wc -l
参考