Python 不用api网关直接用rest api调用aws lamdba

Python 不用api网关直接用rest api调用aws lamdba,python,amazon-web-services,aws-lambda,aws-api-gateway,Python,Amazon Web Services,Aws Lambda,Aws Api Gateway,在this blog()中,我看到只有serverless.yaml: # serverless.yml service: serverless-flask plugins: - serverless-python-requirements - serverless-wsgi custom: wsgi: app: app.app packRequirements: false pythonRequirements: dockerizePip: non

在this blog()中,我看到只有serverless.yaml:

# serverless.yml

service: serverless-flask

plugins:
  - serverless-python-requirements
  - serverless-wsgi

custom:
  wsgi:
    app: app.app
    packRequirements: false
  pythonRequirements:
    dockerizePip: non-linux

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: us-east-1

functions:
  app:
    handler: wsgi.handler
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'
和app.py:

# app.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():u
    return "Hello World!"
如何从internet直接呼叫lambda。aws的哪个服务/组件获取此URL,并且是永久的。URL是否可以在没有API网关的情况下自定义?是否也可以将此URL提供给客户作为API使用?

一个具有
http
事件的“无服务器”(即)功能正在为您创建API网关。对API网关端点的请求将发送到lambda。因为您使用的是
{proxy+}
选项,所以它基本上会将所有内容路由到函数,并期望函数了解请求的含义


如果您想直接从internet调用该函数,您可以,但可能不应该。所有AWS API都只是HTTPs调用。从互联网上给他们打电话需要有这样做的凭据,并对请求进行适当的签名。如果你真的想直接从因特网上调用它,你可以考虑使用Cytoito。您可以通过Cognito标识获取临时凭据,并且可以通过SDK调用lambda来为您处理签名。

可以使用rest API直接调用AWS lambda,而不使用任何其他AWS服务?不需要任何其他服务。您至少需要凭据,因此需要IAM用户或其他获取这些凭据的方法。您可以通过调用invoke API()来调用lambda。