本文介绍如何通过Funcraft部署API网关和函数计算应用,如果应用比较简单,您可以直接复制提供的示例的配置,如果提供的示例无法满足需求,您可以通过本文介绍的映射规则进行自定义配置。
背景信息
函数计算提供了HTTP触发器,并且支持本地调试,方便您通过函数计算开发Web应用,请参见HTTP触发器概述和使用fun local进行本地调试。但也存在一些场景,例如已经存在一个API网关+函数计算的应用,想要将该应用部署到不同的地域。如果通过手工操作,这个过程会十分的繁琐,且容易出错。通过Funcraft可以较容易的实现一键部署API网关+函数计算到所有地域。
在通过Funcraft发布API网关和函数计算应用前,建议您先了解Funcraft工具的相关文档,请参见功能概览。
说明 使用Funcraft配置API网关具有重复部署、多地域部署、协同开发、版本控制管理等优点,建议您优先使用Funcraft部署API网关。本文只提供核心的代码或配置,若您需要查看完整示例,请参见参考文档。
本文涉及的名词解释如下:
- 函数计算FC(Function Compute):函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算准备计算资源,并以弹性伸缩的方式运行您的代码,而您只需为任务实际消耗进行付费。函数计算更多信息,请参见什么是函数计算。
- Funcraft:Funcraft是一个用于支持Serverless应用部署的工具,能帮助您便捷地管理函数计算、API网关、日志服务等资源。您可以通过一个资源配置文件template.yml进行开发、构建、部署等操作。Funcraft的更多文档,请参见介绍。
- API网关:API网关(API Gateway)提供高性能、高可用的API托管服务,帮助您对外开放其部署在ECS、容器服务等阿里云产品上的应用,提供完整的API发布,维护生命周期管理等。您只需进行简单地操作,即可快速、低成本、低风险地开放数据或服务。
简单示例
使用进阶
如果您想要配置更多参数,例如HTTPS、超时时间等,您可以根据API网关的API文档进行更多的配置,Funcraft支持的参数包括ApiName、Visibility、RequestConfig、RequestParameter、ServiceParameter、ServiceParametersMap等。详细信息,请参见创建API。
如果您需要通过API文档,编写Funcraft配置文件,您需要了解关于API与Funcraft配置的映射规则。映射规则如下:
- 参数名需小写。
- 原来的驼峰需用
-
连接。 - 前缀需加上
x-aliyun-apigateway
。
例如对于以下API参数,映射关系分别为:
ApiName => x-aliyun-apigateway-api-name
Visibility => x-aliyun-apigateway-visibility
RequestParameters => x-aliyun-apigateway-request-parameters
ServiceParametersMap => x-aliyun-apigateway-service-parameters-map
如果您想对每个参数执行更细粒度的配置,例如在API文档中介绍的RequestParameter,表示RequestParameter数组的字符串,RequestParameter可进行配置的参数有ApiParameterName、Location、ParameterType、Required等。您可以参照以下示例将RequestParameter的参数转换成Funcraft配置。
ApiParameterName => apiParameterName
Location => location
映射示例
您可以通过以下配置将RequestParameter转换成Funcraft的配置。
x-aliyun-apigateway-request-parameters:
- apiParameterName: 'token'
location: 'Query'
parameterType: 'String'
required: 'REQUIRED'
- apiParameterName: 'token2'
location: 'Query'
parameterType: 'String'
required: 'REQUIRED'
常量参数、系统参数
您可以根据API文档及映射规则完成相应的参数配置。
- 常量参数的配置如下:
x-aliyun-apigateway-request-parameters: - apiParameterName: 'token' location: 'Query' parameterType: 'String' required: 'REQUIRED' defaultValue: 'e' x-aliyun-apigateway-service-parameters: - serviceParameterName: 'token' location: 'Query' parameterCatalog: 'CONSTANT'
- 系统参数的配置如下:
x-aliyun-apigateway-request-parameters: - apiParameterName: 'CaClientIp' location: 'Query' parameterType: 'String' required: 'REQUIRED' x-aliyun-apigateway-service-parameters: - serviceParameterName: 'CaClientIp' location: 'Query' parameterCatalog: 'SYSTEM'
改造已有的API
如果一个API已经存在一个API网关,您可以通过以下操作快速地用Funcraft描述出来。
- 登录API网关控制台。
- 在左侧导航栏,选择编辑,然后不做修改直接保存。 ,选择目标API,单击
- 找到ModifyApi.json请求,您可以根据映射规则修改RequestParamter等参数的配置。
在文档使用中是否遇到以下问题
更多建议
匿名提交