Level10

とあるSEの備忘録

LambdaでLambda の function一覧を取得する

概要

Lambda で Python ( boto3 ) を使って Lambda の function 名一覧を取得する方法です。

ポイント

boto3 での Lambda function の情報を取得するためには list_functions を使用します。 list_functions では取得されたオブジェクト件数が、リクエストパラメータで指定した MaxItems 以上存在した場合には、NextMarker という値がレスポンスで返却されます。 その値を次のAPIコールにMarkerパラメータとして与えることで残りの値を取得することができます。

前提

サンプルコード

import boto3

client = boto3.client('lambda')
ary_function_name = []
    

def function_list(max_items=50, next_marker=None):
    if next_marker:
        r = client.list_functions(MaxItems=max_items, Marker=next_marker)
    else:
        r = client.list_functions(MaxItems=max_items)
    
    for functions in r['Functions']:
        ary_function_name.append(functions['FunctionName'])

    if 'NextMarker' in r:
        return function_list(max_items=max_items, next_marker=r['NextMarker'])
    else:
        return

def lambda_handler(event, context):
    
    r = function_list()
    print(ary_function_name)
    
    return

まとめ

これで function 名の取得ができます。 他にも boto3 を利用していると Marker を使用するケースがあると思うので参考にしてみてください。