前言

通过本组件,您可以简单快速的部署腾讯云API网管。

使用

最简使用方法

模版拉取:

  1. s init apigateway -p tencent

其中Yaml的默认配置为:

  1. MyAPIGateway:
  2. Component: apigateway
  3. Provider: tencent
  4. Properties:
  5. Region: ap-shanghai
  6. Service:
  7. Name: serverless
  8. Description: the serverless service
  9. API:
  10. - Path: '/'
  11. Protocol: HTTP
  12. Method: GET
  13. Name: 'mock-api'
  14. ServiceType: MOCK
  15. ServiceMockReturnMessage: 'Hello Serverless Devs Tool'

完整Yaml示例

  1. MyAPIGateway:
  2. Component: apigateway
  3. Provider: tencent
  4. Access: release
  5. Properties:
  6. Region: ap-shanghai
  7. Service:
  8. Id: service-8dsikiq6
  9. Name: serverless
  10. Protocols:
  11. - http
  12. - https
  13. Description: the serverless service
  14. Environment: release
  15. NetTypes:
  16. - OUTER
  17. - INNER
  18. Domains:
  19. - Domain: abc.com
  20. # 如要添加https,需先行在腾讯云-SSL证书进行认证获取cettificateId
  21. CertificateId: abcdefg
  22. # 如要设置自定义路径映射,请设置为 false
  23. IsDefaultMapping: false
  24. PathMappingSet:
  25. - Path: /
  26. Environment: release
  27. Protocols:
  28. - http
  29. - https
  30. API:
  31. # 前端类型: WEBSOCKET, 后端类型: SCF
  32. - Path: /
  33. Method: GET
  34. Protocol: WEBSOCKET
  35. Function:
  36. # 前端类型为WEBSOCKET且后端为SCF时, transportFunctionName 为必填
  37. TransportFunctionName: myFunction
  38. RegisterFunctionName: myFunction
  39. CleanupFunctionName: myFunction
  40. # 前端类型: WEBSOCKET, 后端类型: HTTP
  41. - Path: /ws
  42. Protocol: WEBSOCKET
  43. Name: 'test-ws'
  44. Method: GET
  45. ServiceType: WEBSOCKET
  46. ServiceConfig:
  47. Url: 'ws://www.test.com'
  48. Path: /
  49. Method: GET
  50. # 前端类型: HTTP, 后端类型: SCF
  51. - Path: /test/{abc}/{cde}
  52. Id: api-id
  53. Method: GET
  54. Description: Serverless REST API
  55. EnableCORS: TRUE
  56. ResponseType: HTML
  57. ServiceTimeout: 10
  58. Parameters:
  59. - Name: abc
  60. Position: PATH
  61. Required: 'TRUE'
  62. Type: string
  63. DefaultValue: abc
  64. Description: mytest
  65. - Name: cde
  66. Position: PATH
  67. Required: 'TRUE'
  68. Type: string
  69. DefaultValue: abc
  70. Description: mytest
  71. Function:
  72. IsIntegratedResponse: true
  73. FunctionQualifier: $LATEST
  74. FunctionName: myFunction
  75. UsagePlan:
  76. UsagePlanId: 1111
  77. UsagePlanName: slscmp
  78. UsagePlanDesc: sls create
  79. MaxRequestNum: 1000
  80. Auth:
  81. SecretName: secret
  82. SecretIds:
  83. - AKIDNSdvdFcJ8GJ9th6qeZH0ll8r7dE6HHaSuchJ
  84. # 前端类型: HTTP, 后端类型: MOCK
  85. - Path: /mo
  86. Protocol: HTTP
  87. Method: GET
  88. Name: 'mock-api'
  89. ServiceType: MOCK
  90. ServiceMockReturnMessage: 'mock response content'
  91. # 前端类型: HTTP, 后端类型: HTTP
  92. - Path: /rest
  93. Protocol: HTTP
  94. Name: 'test-http'
  95. Method: GET
  96. ServiceType: HTTP
  97. ServiceConfig:
  98. Url: 'http://www.test.com'
  99. Path: /test
  100. Method: GET

详细使用方法

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Region | true | Enum | 地域 |

| Service | false | Struct | API网关服务 |

| API | false | Struct | API详细信息 |

Service

| 参数 | 必填 | 参数类型 | 默认值 | 描述 | | —- | —- | —- | —- | —- |

| Id | false | String | | 服务的全局唯一 ID,由系统生成 |

| Protocols | true | List | ['http'] | 服务的前端请求类型,例如 HTTP,HTTPS,HTTP 和 HTTPS。 (http / https) |

| Name | false | String | | 用户自定义的服务名称。 如果该参数未传递,则由系统自动生成一个唯一名称 |

| NetTypes | false | List | ['OUTER'] | 网络类型列表,用于指定支持的访问类型,INNER 为内网访问,OUTER 为外网访问。 |

| Description | false | String | | 用户自定义的服务描述说明 |

| Environment | false | String | | 服务要发布的环境的名称,支持三种环境: test(测试)、prepub(预发布)、 release(发布) |

| Domains | false | List | [] | 自定义 API 域名,配置参数参考customDomain 参数说明 |

Domains

| 参数 | 必填/可选 | 参数类型 | 默认值 | 描述 | | —- | —- | —- | —- | —- |

| Domain | true | String | | 需要绑定的自定义域名 |

| CertificateId | false | String | | 自定义域名的证书,如果设置为 https,则为必需。 |

| IsDefaultMapping | false | Boolean | true | 是否使用默认路径映射。 如果要自定义路径映射,请设为false |

| PathMappingSet | false | Struct | [] | 自定义路径映射, 当 isDefaultMappingfalse 时必填,配置参数参考pathMappingSet 参数说明 |

| Protocols | false | List | | 绑定自定义域协议类型,例如 HTTP,HTTPS,HTTP 和 HTTPS,默认与前端协议相同 |

PathMappingSet

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| path | false | String | 自定义映射路径 |

| environment | false | String | 自定义映射环境 |

API

| 参数 | 必填/可选 | 类型 | 默认值 | 描述 | | —- | —- | —- | —- | —- |

| Id | false | String | | API 的唯一 ID |

| Protocol | false | List | HTTP | 指定的前端 API 类型, 默认为HTTP,如要创建 websocket 类型的 API,请设为WEBSOCKET |

| Path | true | String | | API 路径 |

| Method | true | String | | 请求方法 |

| ServiceType | false | String | SCF | 指定的后端类型,默认为 SCF,如要创建 mock 或 http 的类型,可设为 MOCKHTTP |

| Description | false | String | | API 描述 |

| EnableCORS | false | Boolean | false | 是否启用跨域访问。 true:启用, false:不启用 |

| Function | 必填 | Struct | | 对应的 Serverless 云函数,配置参数参考function 参数说明 |

| UsagePlan | false | Struct | | 基于 API 维度的使用计划,配置参数参考usagePlan 参数说明 |

| Auth | false | Struct | | API 鉴权设置,配置参数参考auth 参数说明 |

| ServiceTimeout | false | Number | | API 的后端服务超时时间,单位为秒 |

| ResponseType | false | String | 返回类型: HTML、JSON、TEST、BINARY、XML | |

| Parameters | false | List | | 前端请求参数,配置参数参考param 参数说明 |

| ServiceConfig | false | Struct | | API 的后端服务配置,配置参数参考serviceConfig 参数说明 |

| ServiceMockReturnMessage | false | String | | Mock 接口类型返回结果,如果 serviceType 设置为 MOCK,此参数必填 |

Function

| 参数 | 描述 | | —- | —- |

| IsIntegratedResponse | 是否开启响应集成,当前端类型为HTTP时生效 |

| FunctionQualifier | scf 函数版本 |

| FunctionName | API 的后端服务的 SCF 函数的名称,当前端类型为HTTP时生效且为必填 |

| TransportFunctionName | API 的后端服务的传输函数的名称,当前端类型为WEBSOCKET时生效且为必填 |

| RegisterFunctionName | API 的后端服务的注册函数的名称,当前端类型为WEBSOCKET时生效 |

| CleanupFunctionName | API 的后端服务的清理函数的名称,当前端类型为WEBSOCKET时生效 |

ServiceConfig

| 参数 | 描述 | | —- | —- |

| Url | API 的后端服务 url |

| Path | API 的后端服务路径 |

| Method | API 的后端服务请求方法 |

UsagePlan

| 参数 | 描述 | | —- | —- |

| UsagePlanId | 用户自定义的基于 API 的使用计划 ID |

| UsagePlanName | 用户自定义的基于 API 的使用计划名称 |

| UsagePlanDesc | 用户自定义的基于 API 的使用计划描述 |

| MaxRequestNum | 允许的请求总数。不传该参数时默认为 1000 次,若其保留为空,则默认情况下将使用-1,表示已禁用 |

Auth

| 参数 | 描述 | | —- | —- |

| SecretName | 用户自定义的密钥名称 |

| SecretIds | 用户自定义的 secretID。当类型为手动时需要。 它可以包含 5 到 50 个字母,数字和下划线。 |

Parameters

| 参数 | 描述 | | —- | —- |

| Name | 请求参数名称 |

| Position | 参数位置,仅支持PATHQUERYHEADER类型 |

| Type | 参数类型,如 String 和 int. |

| DefaultValue | 参数默认值 |

| Required | 参数是否必填, true: 必填; false: 可选 |

| Description | 参数备注/描述 |