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

Lambda オーソライザーの例

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

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

API へのアクセスは、AWS SAM テンプレート内で Lambda TOKEN オーソライザーを定義することによって制御できます。これを実行するには、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)

API へのアクセスは、AWS SAM テンプレート内で Lambda REQUEST オーソライザーを定義することによって制御できます。これを実行するには、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)

HTTP API へのアクセスは、AWS SAM テンプレート内で Lambda オーソライザーを定義することによって制御できます。これを実行するには、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