本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以 Lambda 項目的授權者範例 AWS SAM
資AWS::Serverless::Api
源類型支援兩種類型的 Lambda 授權者:授權者和TOKEN
REQUEST
授權者。資AWS::Serverless::HttpApi
源類型僅支援REQUEST
授權者。以下是每種類型的範例。
Lambda TOKEN
授權者範例 () AWS::Serverless::Api
您可以在 AWS SAM 範本中定義 Lambda TOKEN
授權者來控制對您的存取。APIs要做到這一點,你使用的ApiAuth數據類型。
以下是 Lambda TOKEN
授權者的 AWS SAM 範例範本區段:
注意
在下列範例中,會SAMFunctionRole
隱含產生。
Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaTokenAuthorizer Authorizers: MyLambdaTokenAuthorizer: FunctionArn: !GetAtt MyAuthFunction.Arn MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x
如需 Lambda 授權人的詳細資訊,請參閱API閘道開發人員指南中的使用閘API道 Lambda 授權人員。
Lambda REQUEST
授權者範例 () AWS::Serverless::Api
您可以在 AWS SAM 範本中定義 Lambda REQUEST
授權者來控制對您的存取。APIs要做到這一點,你使用的ApiAuth數據類型。
以下是 Lambda REQUEST
授權者的 AWS SAM 範例範本區段:
Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaRequestAuthorizer Authorizers: MyLambdaRequestAuthorizer: FunctionPayloadType: REQUEST FunctionArn: !GetAtt MyAuthFunction.Arn Identity: QueryStrings: - auth MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x
如需 Lambda 授權人的詳細資訊,請參閱API閘道開發人員指南中的使用閘API道 Lambda 授權人員。
Lambda 授權者範例 () AWS::Serverless::HttpApi
您可以在 AWS SAM 範本中定義 Lambda 授權者來控制對您的存取。HTTP APIs要做到這一點,你使用的HttpApiAuth數據類型。
以下是 Lambda 授權者的 AWS SAM 範例範本區段:
Resources: MyApi: Type: AWS::Serverless::HttpApi Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaRequestAuthorizer Authorizers: MyLambdaRequestAuthorizer: FunctionArn: !GetAtt MyAuthFunction.Arn FunctionInvokeRole: !GetAtt MyAuthFunctionRole.Arn Identity: Headers: - Authorization AuthorizerPayloadFormatVersion: 2.0 EnableSimpleResponses: true MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: HttpApi Properties: ApiId: !Ref MyApi Path: / Method: get PayloadFormatVersion: "2.0" MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x