尝试sam deploy
我的lambda函数时遇到了这个问题。我在这里找到了相同问题的链接:
但是,即使在通读了它和文档之后,我也不知道如何解决它。有人可以向我解释吗?
答案 0 :(得分:4)
对于所有使用AWS SAM Hello World模板启动并进行部署且没有任何更改或遵循AWS SAM教程的人员,通常会发生这种情况。 (这并不意味着您不应该从该模板开始,或者不使用AWS SAM教程,而应该添加更多配置以摆脱此消息。)
在这里,AWS SAM通知您您的应用程序未经授权配置了API Gateway API。部署同一应用程序时,AWS SAM将创建一个公共可用的URL / API。
要摆脱此消息,您需要为API定义一些访问控制机制。
您可以通过在AWS SAM模板中启用授权来使用AWS SAM来控制谁可以访问您的API Gateway API。 例如,
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Auth:
DefaultAuthorizer: MyLambdaTokenAuthorizer
Authorizers:
MyLambdaTokenAuthorizer:
FunctionArn: !GetAtt MyAuthFunction.Arn
MyAuthFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: authorizer.handler
Runtime: nodejs12.x
以上代码段是一个称为 Lambda Authorizer 的授权机制的示例。还有其他一些机制。例如,IAM权限,API密钥等。
您可以通过以下链接找到有关这些授权的更多信息 https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html