Lambda オーソライザーの例 - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda オーソライザーの例

AWS::Serverless::Api リソースタイプは、TOKEN オーソライザーと REQUEST オーソライザーの 2 つのタイプの Lambda オーソライザーをサポートします。AWS::Serverless::HttpApi リソースタイプは REQUEST オーソライザーのみをサポートします。以下は、各タイプの例です。

Lambda TOKEN オーソライザーの例 (AWS::Serverless::Api)

AWS SAM テンプレート内で Lambda TOKENオーソライザーを定義することで、APIs へのアクセスを制御できます。これを実行するには、ApiAuth データ型を使用します。

Lambda TOKENオーソライザーの AWS SAM テンプレートセクションの例を次に示します。

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 Gateway デベロッパーガイドの「API Gateway 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 Gateway デベロッパーガイドの「API Gateway 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