在另一个AWS lambda中使用现有

2024-09-27 21:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

请参考下面的代码段:

    import awsgi
    import json
    from flask import (
    Flask,
    jsonify,
    request
    )

    app = Flask(__name__)

    @app.route('/')
    def index():
       return jsonify(status=200, message='OK')

    @app.route('/tester')
    def tst():

      rule = request.url_rule
      if 'tester' in  rule.rule:
         return {'status':200, 'message':'test'}

    def lambda_handler(event, context):    

    test = (awsgi.response(app, event, context))
    for key, value in test.items():
        if key == 'message':
            call = value

    return {
        'body': json.dumps(test)
    }

现在在call变量中,我们有值“test”。 这个“test”也是我要调用的另一个lambda中的方法的名称。 有人能帮我吗 谢谢你


Tags: testimportjsonappflaskmessagereturnrequest
2条回答

我想你只是想叫另一个兰巴

如果这就是你要找的,这里是你可以做的

import json
import boto3
from flask import (
  Flask,
  jsonify,
  request
)
import awsgi
client = boto3.client('lambda')


def lambda_handler(event, context):    

  test = 'other-function-name'
  response = client.invoke(
      FunctionName=test,
      InvocationType='RequestResponse',
      Payload=json.dumps({})
  )

  return {
      ...
      'body': json.dumps(response)
      ....
  }

如果不想等待另一个lambda完成,可以使用InvocationType='RequestResponse'

希望这有帮助

通过定义为处理程序的函数,每个AWS Lambda函数都有一个入口点

调用AWS Lambda函数时,将调用Handler函数。在调用Lambda函数时,不可能“调用”另一个函数

但是,您可以向处理程序函数添加一些逻辑,该函数检查传入的event并检查测试情况。然后处理函数可以调用test()函数。例如,将一个条目添加到event表示"Test": "true",然后让处理函数检查这个条目,如果存在,则调用test()

相关问题 更多 >

    热门问题