0

我最近部署了一个新的 API 端点,并通过云形成将其链接到指定的 lambda。

          x-amazon-apigateway-integration:
            uri: !Join 
              - ''
              - - 'arn:aws:apigateway:'
                - !Ref 'AWS::Region'
                - ':lambda:path/2015-03-31/functions/arn:aws:lambda:'
                - !Ref 'AWS::Region'
                - ':'
                - !Ref 'AWS::AccountId'
                - ':function:'
                - !Ref lbdBusinessPersonAccountsFunctionName
                - '-'
                - !Ref EnvName
                - ':live'
                - /invocations

当我检查 API Gateway 控制台时,似乎 lambda 已正确集成到 API 端点。但是当我检查 lambda 控制台本身时,没有生成 API GW 触发事件。

当我尝试手动将其链接到网关时,它不会让我指定要链接到的资源,而是在 lambda 名称下创建一个新资源。

我是否缺少手动链接步骤?

4

1 回答 1

0

在您的 cloudformation 模板上,假设您使用的是 YAML;在下面添加权限映射资源。这使 apigateway 有权添加触发器/调用您的 lambda(这是对适当 IAM 权限的补充)。

FunctionInvokePermissions:
  Type: "AWS::Lambda::Permission"
  Properties:
    Action: "lambda:InvokeFunction"
    FunctionName: !GetAtt "Function.Arn"
    Principal: "apigateway.amazonaws.com"
    SourceArn: !Sub 
      - "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${RestApiId}/${pathpart}/${method}"
于 2020-06-15T03:56:21.803 回答