0

この形式で応答を返すラムダオーソライザーを作成しました-

{
principalId: 123345,
policyDocument: {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "execute-api:Invoke",
      "Effect": "Allow",
      "Resource": "arn:aws:execute-api:us-east-1:123456789012:ivdtdhp7b5/verifyToken-stage/GET/"
    }
  ]
}
}

注-私のオーソライザーの名前はverifyTokenです

私の別のマイクロサービス(つまり、アクティビティログ)のserverless.ymlファイルでは、次のように呼び出しています-


service: activity-logs

frameworkVersion: '2'

resources:
  Resources:
    GatewayResponseUnauthorized:
      Type: 'AWS::ApiGateway::GatewayResponse'
      Properties:
        ResponseParameters:
          gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
          gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
          gatewayresponse.header.Access-Control-Allow-Methods: "'*'"
          gatewayresponse.header.Access-Control-Allow-Credentials: "'true'"
        ResponseType: UNAUTHORIZED
        RestApiId: 
          Ref: 'ApiGatewayRestApi'

provider:
  name: aws
  runtime: nodejs12.x
  lambdaHashingVersion: 20201221
  region: us-east-1
  stage:  ${opt:stage}
functions:
  getActivityLogs:
    handler: handler.getActivityLogs
    environment:
      NODE_ENV:  ${opt:env}
    timeout: 800
    events:
      - http:
          path: /{user_id}
          method: get
          authorizer: arn:aws:lambda:us-east-1:123456789012:function:auth-${opt:stage}-verifyToken
          cors: true
    vpc:
      securityGroupIds:
        - sg-xxxxxxxx
        - sg-xxxxxxxx
        - sg-xxxxxxxx
        - sg-xxxxxxxx
        - sg-xxxxxxxx
      subnetIds:
        - subnet-xxxxxxxxxxxxxxxxx
        - subnet-xxxxxxxxxxxxxxxxx

オーソライザーを個別に確認しましたが、動作しており、上記の応答で 200 を返しています。同様に、私のマイクロサービスはオーソライザーなしで動作しています。しかし、getActivityLogs でオーソライザーが有効になっていると、アクティビティ ログが 1 行も実行されません。

4

1 に答える 1