如何用Python创建一个*干净*的AWS Lambda函数?

0 投票
1 回答
26 浏览
提问于 2025-04-12 08:14
问题

当我在本地运行我的lambda API,使用命令sam local start-api时,出现了错误{"message":"Missing Authentication Token"},而这个请求其实并不需要身份验证令牌。

代码

在我的云形成模板文件中,我创建了一个lambda函数(见下文)和一个API网关来处理API调用。由于这个设置在本地使用start-api时会失败(谢谢AWS?),我添加了你们可以看到的Events部分。

MyApi:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: myapi
      Handler: lambda_handler.lambda_handler
      Runtime: python3.10
      Architectures:
        - arm64
      ...
      Events:
        Any:
          Type: HttpApi
          Properties:
            Path: '/myapi/*'
            Method: any
重现步骤
  • 我运行sam build && sam local start-api来启动API。
  • 我运行curl localhost:8080/myapi/ping
    • 8080是我在samconfig中配置的端口
    • /myapi/ping是在API网关和lambda_handler中配置的路径。

1 个回答

0
问题

我不太明白为什么,但是 Path: '/myapi/*' 似乎是个问题所在。

解决办法

改用 Path: '/{proxy+}' 就解决了这个问题。

警告: 如果你在部署用的模板中使用这个设置,你的服务器上也会有相同的设置。这可能不是你想要的结果。

这是一个社区维基。谁知道更多的内容,欢迎补充细节

撰写回答