本文介绍如何通过Funcraft部署API网关和函数计算应用,如果应用比较简单,您可以直接复制提供的示例的配置,如果提供的示例无法满足需求,您可以通过本文介绍的映射规则进行自定义配置。
关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs。
关于Serverless Devs的详细信息,请参见什么是Serverless Devs。
由此带来的不便,敬请谅解!
背景信息
函数计算提供了HTTP触发器,并且支持本地调试,方便您通过函数计算开发Web应用,请参见HTTP触发器概述和使用fun local进行本地调试。但也存在一些场景,例如已经存在一个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。
- 参数名需小写。
- 原来的驼峰需用
-
连接。 - 前缀需加上
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
ApiParameterName => apiParameterName
Location => location
映射示例
x-aliyun-apigateway-request-parameters:
- apiParameterName: 'token'
location: 'Query'
parameterType: 'String'
required: 'REQUIRED'
- apiParameterName: 'token2'
location: 'Query'
parameterType: 'String'
required: 'REQUIRED'
常量参数、系统参数
- 常量参数的配置如下:
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描述出来。