尝试通过附加的 Lambda 授权程序通过 SAM 部署 API。部署后,将在“Authorizers”下的 API 上成功创建授权者,但是尽管可以在下拉列表中选择授权者,但资源上的授权设置仍设置为“无”。
Resources:
PlatformApiGateway:
Type: AWS::Serverless::Api
Properties:
Name: API Gateway name
StageName: !Sub ${Environment}
Auth:
Authorizers:
LambdaTokenAuthorizer:
FunctionArn: FunctionArn Name
DefinitionBody:
'Fn::Transform':
Name: 'AWS::Include'
Parameters:
Location: !Sub s3://${OpenApiLocation}
PlatformApiAuthorizer:
Type: AWS::ApiGateway::Authorizer
Properties:
AuthorizerUri: AuthorizerUri
IdentitySource: method.request.header.auth
Name: AuthorizerName
RestApiId: !Ref PlatformApiGateway
Type: TOKEN
APIAuth 属性似乎是这些设置的位置,但是以下文档不包含设置此授权设置的属性
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html
我的 API 定义中缺少哪些 SAM 属性才能让相关授权者设置该设置?
谢谢。
粘贴为 API 提供授权的 lambda ARN。
函数Arn:
FunctionArn Name
在 LambdaTokenAuthorizer 中检查 FunctionArn。
很高兴将 Cloudformation 输出的资源问题列表粘贴到其中。
您可以在这里找到完整示例:https://github.com/Willis0826/sam-local-authorizer-example/tree/master/rest-apis
按照 README 中的说明操作,您应该能够在本地验证模板并轻松部署到 AWS。