Fra*_*ton 4 python amazon-web-services aws-lambda aws-api-gateway
我到处寻找一些支持的库,但找不到任何东西。我只想将我的 lambda 作为本地 api(即 localhost:80000/api/get/1)运行,这样我就可以在我的机器上运行我的前端和后端,以便快速开发。
我已经在本地运行了一个 fastapi“网关”,并使用它在本地调用 lambda_entry,唯一的问题是它很慢,毫无疑问,每个请求的环境旋转都会影响性能。
我觉得这是人们会经常使用的东西,我在正确的轨道上吗?
您可以为此使用AWS SAM。
本地测试和调试
使用 SAM CLI 逐步执行和调试您的代码。它在本地提供类似 Lambda 的执行环境,并帮助您预先发现问题。
您可能需要先安装 Docker,因为它将是用于运行 API 的执行环境。sam首先设置项目。
$ python3 -m pip install aws-sam-cli
$ sam init # Just choose the first options e.g. <1 - AWS Quick Start Templates>
Run Code Online (Sandbox Code Playgroud)
现在,您将拥有这样的文件结构:
$ tree
.
??? sam-app
??? events
? ??? event.json
??? hello_world
? ??? app.py
? ??? __init__.py
? ??? requirements.txt
??? __init__.py
??? README.md
??? template.yaml
??? tests
??? __init__.py
??? integration
? ??? __init__.py
? ??? test_api_gateway.py
??? requirements.txt
??? unit
??? __init__.py
??? test_handler.py
6 directories, 13 files
Run Code Online (Sandbox Code Playgroud)
您可能感兴趣的 2 个文件是:
山姆应用程序/hello_world/app.py
import json
def lambda_handler(event, context):
"""Sample pure Lambda function"""
return {
"statusCode": 200,
"body": json.dumps({
"message": "hello world",
}),
}
Run Code Online (Sandbox Code Playgroud)
sam-app/template.yaml
...
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: hello_world/
Handler: app.lambda_handler
Runtime: python3.9
Events:
HelloWorld:
Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /hello
Method: get
...
Run Code Online (Sandbox Code Playgroud)
构建应用程序,然后您就可以运行您的本地 API
$ cd sam-app/
$ sam build
$ sam local start-api
Run Code Online (Sandbox Code Playgroud)
访问您的本地 API
$ curl http://127.0.0.1:3000/hello
{"message": "hello world"}
Run Code Online (Sandbox Code Playgroud)
为您提供指导的完整参考:https : //docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |