最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

从Swagger设置APIgateway

运维笔记admin12浏览0评论

从Swagger设置APIgateway

从Swagger设置APIgateway

我正在尝试使用Swagger文件在APIGateway中创建多个API。

现在,当我使用AWS控制台时,我手动导入swagger文件,然后在创建的每个API中添加端点/身份验证。

我想使用AWS Lambda(Node JS)完成相同的任务,以便我可以:

  1. 使用Swagger创建API
  2. 添加端点(自定义服务器)
  3. 添加授权人(cognito)

我调查了AWS documentation,但无法以正确的方式理解它。如何完成这项任务?

回答如下:

如果你真的必须使用swagger,我会说

  • swagger json格式编写API
  • 解析它以添加你的API gateway扩展(端点/授权者/角色)
  • 发布它

要么

  • 使用给定的swagger文档创建API
  • restapi id传递给lambda函数
  • 使用apigateway SDK(例如NodeJS SDK for APIGateway)获取restapi的资源和方法,并为其添加集成。

但你考虑过AWS Cloudformation脚本吗?在我目前的项目中,我已经考虑过你想做什么,但我不是swagger的专家我选择了Cloudformation。 (也被认为是AWS SAMserverless)。它有点重复,但发现更容易编写和理解。以下是CFN yaml格式的端点示例 -

ResourceUserActions:
  Type: AWS::ApiGateway::Resource
  DeletionPolicy: Delete
  Properties:
    RestApiId: !Ref RestAPI
    ParentId: !Ref ResourceUser
    PathPart: "{action+}"
UserActionsMethod:
Type: AWS::ApiGateway::Method
Properties:
  RestApiId: !Ref RestAPI
  ResourceId: !Ref ResourceUserActions
  HttpMethod: ANY
  AuthorizationType: COGNITO_USER_POOLS
  AuthorizerId: !Ref ApiAuthorizer
  Integration:
    Type: AWS_PROXY
    IntegrationHttpMethod: POST
    Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HandlerFunction.Arn}/invocations
    Credentials: !GetAtt ApiGatewayRole.Arn

类型AWS::ApiGateway::Resource定义资源,AWS::ApiGateway::Method向资源添加方法,授权器,集成类型详细信息。有关更多详细信息,请参阅AWS CFN for APIGateway

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论