全般的な注意
- Lambda関数本体とLambdaレイヤの両方を確認しろ。
- リージョンごとにチェックしろ。特にバージニアリージョンus-east-1に注意せよ。Lambda@Edgeがいるかもしれない。AWS CLIではリージョン指定に
--region
オプションが使える。
例
--region us-east-1
Lambdaレイヤを列挙する
# nodejsを使っていて、レイヤ名にfooを含むラムダレイヤを列挙 aws lambda list-layers --query 'Layers[*].LatestMatchingVersion' | jq --monochrome-output '.[] | select((.CompatibleRuntimes[] | test("^nodejs")) and (.LayerVersionArn | contains("foo"))) | .LayerVersionArn' | cut -d: -f7
# nodejsを使っていて、レイヤ名にfooを含むラムダレイヤの全バージョンを列挙 aws lambda list-layers --query 'Layers[*].LatestMatchingVersion' | jq --monochrome-output '.[] | select((.CompatibleRuntimes[] | test("^nodejs")) and (.LayerVersionArn | contains("foo"))) | .LayerVersionArn' | cut -d: -f7 | xargs -I {} aws lambda list-layer-versions --query 'LayerVersions[*].[LayerVersionArn]' --output text --layer-name {} # より他のコマンドへの入力に適した形で出力 # レイヤ名とバージョンがタブ区切りで列挙される aws lambda list-layers --query 'Layers[*].LatestMatchingVersion' | jq --monochrome-output '.[] | select((.CompatibleRuntimes[] | test("^nodejs")) and (.LayerVersionArn | contains("foo"))) | .LayerVersionArn' | cut -d: -f7 | xargs -I {} aws lambda list-layer-versions --query 'LayerVersions[*].[LayerVersionArn]' --output text --layer-name {} | cut -d: -f7,8 | tr : '\t'
Lambda関数を列挙する
# nodejsを使っていて、関数名にfooを含むラムダを列挙 aws lambda list-functions --query 'Functions[]' | jq --monochrome-output '.[] | select((.Runtime != null) and (.Runtime | test("^nodejs")) and (.FunctionName | contains("foo"))) | .FunctionArn'
# nodejsを使っていラムダを単純に列挙 aws lambda list-functions --query 'Functions[]' | jq --monochrome-output '.[] | select((.Runtime != null) and (.Runtime | test("^nodejs"))) | .FunctionArn' | xargs -I {} aws lambda list-versions-by-function --query 'Versions[*].[FunctionArn]' --output text --function-name {} # nodejsを使っていて、関数名にfooを含むラムダの全バージョンを列挙 aws lambda list-functions --query 'Functions[]' | jq --monochrome-output '.[] | select((.Runtime != null) and (.Runtime | test("^nodejs")) and (.FunctionName | contains("foo"))) | .FunctionArn' | xargs -I {} aws lambda list-versions-by-function --query 'Versions[*].[FunctionArn]' --output text --function-name {}
Lambda関数を削除する
削除対象の関数のリストをファイルに溜めておき
cat remove-func.txt | xargs -I {} aws lambda delete-function --function-name {}
Lambdaレイヤを削除する
削除対象のレイヤのリストをTSVファイルに溜めておく。一行目にレイヤ名、二行目にバージョン番号が書かれることを想定する。
cat remove-layer.txt | xargs -n2 bash -c 'aws lambda delete-layer-version --layer-name $0 --version-number $1'