別のラムダ関数からラムダ関数のメソッドを呼び出す-Python

sid8491

別のラムダ関数からラムダ関数を呼び出すことはできますが、デフォルトではハンドラーメソッドに送られます。その中で定義されている他のメソッドを呼び出すにはどうすればよいですか?

ラムダ関数master.pyがあるとします。これには、他のラムダ関数で使用できる共通のメソッドがあるため、すべての関数で何度も何度も記述する必要はありません。ここで、他のラムダ関数からmaster.pyのメソッド(たとえばgetTime()、authenticateUser()など)を呼び出したいと思います。

基本的に、他のラムダ関数で使用できる一般的なメソッドを持つラムダ関数を保持したいと思います。
どんな助けでも大歓迎です。

以下は、あるラムダ関数を別のラムダ関数から呼び出そうとしたコードです(この質問からコードを取得しました)が、handler()メソッドに送られます。

ラムダ関数A

def handler(event,context):
    params = event['list']
    return {"params" : params + ["abc"]}

Aを呼び出すラムダ関数B

import boto3
import json

lambda_client = boto3.client('lambda')
a=[1,2,3]
x = {"list" : a}
invoke_response = lambda_client.invoke(FunctionName="functionA",
                                       InvocationType='RequestResponse',
                                       Payload=json.dumps(x))
print (invoke_response['Payload'].read())

出力

{
  "params": [1, 2, 3, "abc"]
}
ファウラー

invokeの呼び出し時に、イベントパラメーター内で目的のラムダ関数メソッドを実行するために必要なデータを渡すことができます。呼び出したいメソッドを使用して、ラムダ関数のlambda_handlerの先頭に次のコードを含める場合。

def lambda_handler(event, context):
    """
    Intermediary method that is invoked by other lambda functions to run methods within this lambda
    function and return the results.

    Parameters
    ----------
    event : dict
            Dictionary specifying which method to run and the arguments to pass to it
            {function: "nameOfTheMethodToExecute", arguments: {arg1: val1, ..., argn: valn}}
    context : dict
            Not used

    Returns
    -------
    object : object
            The return values from the executed function. If more than one object is returned then they
            are contained within an array.
    """
    if "function" in event:
         return globals()[event["function"]](**event["arguments"])
    else:
        # your existing lambda_handler code...

次に、メソッドを呼び出し、次のメソッドを使用して他のラムダ関数から戻り値を取得しますinvoke

import json

# returns the full name for a lambda function from AWS based on a given unique part
getFullName = lambda lambdaMethodName: [method["FunctionName"] for method in lambda_client.list_functions()["Functions"] if lambdaMethodName in method["FunctionName"]][0]

# execute a method in a different lambda function and return the results
def invoke(lambda_function, method_name, params):
    # wrap up the method name to run and its parameters
    payload = json.dumps({"function": method_name, "arguments": params})
    # invoke the function and record the response
    response = lambda_client.invoke(FunctionName=getFullName(lambda_function), InvocationType='RequestResponse', Payload=payload)
    # parse the return values from the response
    return json.loads(response["Payload"].read())


[rtn_val_1, rtn_val_2] = invoke("fromLambdaA", "desiredFunction", {arg1: val1, arg2: val2})

他のラムダ関数を呼び出す関数にアタッチされたラムダポリシーには、「lambda:ListFunctions」と「lambda:InvokeFunction」の2つのポリシーが必要であることに注意してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ラムダ関数(A)からのn個の結果を使用して、Pythonで別のラムダプロセッサ関数(B)のn個の同時インスタンスを呼び出す方法は?

分類Dev

PythonでjQueryからAWSラムダ関数へのAjax呼び出し

分類Dev

Python-別のクラスから関数を呼び出す

分類Dev

クラス内の別の関数から関数を呼び出すPython

分類Dev

出力なしのPythonラムダ呼び出し関数

分類Dev

Pythonクラスの__str__関数内でメソッドを呼び出す

分類Dev

Python:別の関数パラメーター内から関数を呼び出す

分類Dev

Python:__ init__関数内からクラス変数とクラスメソッドを呼び出す

分類Dev

ある関数を別の関数から呼び出すPython

分類Dev

Python-ランダム関数を呼び出してスレッドを作成する

分類Dev

ラムダはPythonの関数呼び出しよりも遅いのはなぜですか

分類Dev

Python-別のライブラリからメソッドを呼び出すための引数としてメソッドを渡す方法

分類Dev

別の画面クラスからPythonで関数を呼び出す方法は?

分類Dev

Pythonで別のクラスから関数を呼び出す方法

分類Dev

Pythonの別の関数から変数を呼び出す

分類Dev

Pythonの別のクラス内からメソッドを呼び出す

分類Dev

PythonからクラスのC ++関数を呼び出す方法

分類Dev

ラムダ関数の結果からメソッドを呼び出す

分類Dev

Pythonでのラムダのソート関数を理解する

分類Dev

python - 別の関数から変数を呼び出す

分類Dev

メイン関数を持つ別のpythonモジュールから個々のメソッドを呼び出す方法

分類Dev

Python2.7の別のクラスメソッドからクラスメソッドを呼び出す

分類Dev

AWSLambda-別のラムダ関数のメソッドを呼び出す

分類Dev

メソッドpythonクラス内で関数を呼び出す

分類Dev

AWSラムダ関数で外部APIまたはURL(Pythonコード)を呼び出す方法は?

分類Dev

ラムダ関数はそれ自体をPythonで再帰的に呼び出すことができますか?

分類Dev

別のファイルからPython関数を呼び出す

分類Dev

別のファイルから関数を呼び出すPython

分類Dev

別のクラスのあるクラスからPython関数を呼び出す

Related 関連記事

  1. 1

    ラムダ関数(A)からのn個の結果を使用して、Pythonで別のラムダプロセッサ関数(B)のn個の同時インスタンスを呼び出す方法は?

  2. 2

    PythonでjQueryからAWSラムダ関数へのAjax呼び出し

  3. 3

    Python-別のクラスから関数を呼び出す

  4. 4

    クラス内の別の関数から関数を呼び出すPython

  5. 5

    出力なしのPythonラムダ呼び出し関数

  6. 6

    Pythonクラスの__str__関数内でメソッドを呼び出す

  7. 7

    Python:別の関数パラメーター内から関数を呼び出す

  8. 8

    Python:__ init__関数内からクラス変数とクラスメソッドを呼び出す

  9. 9

    ある関数を別の関数から呼び出すPython

  10. 10

    Python-ランダム関数を呼び出してスレッドを作成する

  11. 11

    ラムダはPythonの関数呼び出しよりも遅いのはなぜですか

  12. 12

    Python-別のライブラリからメソッドを呼び出すための引数としてメソッドを渡す方法

  13. 13

    別の画面クラスからPythonで関数を呼び出す方法は?

  14. 14

    Pythonで別のクラスから関数を呼び出す方法

  15. 15

    Pythonの別の関数から変数を呼び出す

  16. 16

    Pythonの別のクラス内からメソッドを呼び出す

  17. 17

    PythonからクラスのC ++関数を呼び出す方法

  18. 18

    ラムダ関数の結果からメソッドを呼び出す

  19. 19

    Pythonでのラムダのソート関数を理解する

  20. 20

    python - 別の関数から変数を呼び出す

  21. 21

    メイン関数を持つ別のpythonモジュールから個々のメソッドを呼び出す方法

  22. 22

    Python2.7の別のクラスメソッドからクラスメソッドを呼び出す

  23. 23

    AWSLambda-別のラムダ関数のメソッドを呼び出す

  24. 24

    メソッドpythonクラス内で関数を呼び出す

  25. 25

    AWSラムダ関数で外部APIまたはURL(Pythonコード)を呼び出す方法は?

  26. 26

    ラムダ関数はそれ自体をPythonで再帰的に呼び出すことができますか?

  27. 27

    別のファイルからPython関数を呼び出す

  28. 28

    別のファイルから関数を呼び出すPython

  29. 29

    別のクラスのあるクラスからPython関数を呼び出す

ホットタグ

アーカイブ