本节我们将从头创建API Gateway, 并使用Lambda做为它的后端:
在AWS 控制台搜索API Gateway
,进入页面
在API Gateway的页面,我们看到有四种类型的API:
选择REST API
类型:
选择New API
, API命名为first-api
:
点击Create API
进行创建。
在创建完API Gateway之后,并不能直接对外提供服务,先提前准备一个Lambda做为它的后台。
进入Lambda页面,点击Create Function
,函数名为function-for-apigateway-root-get
, 运行时选择Python3.9
:
创建完成后,编辑Code,替换内容如下,并进行部署:
import json
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps("Hello from root path")
}
有了 Lambda做为后台后,我们为根路径创建一个Get Method, 并绑定使用这个函数。
点击Create Method
:
选择GET方式,并确认:
使用上一步创建的Lambda函数function-for-apigateway-root-get
:
注意到API Gateway默认的超时时间为29s,而Lambda最大执行时间为900s。这个值可以进行自定义设置
点击确认后会弹出确认框, 给API Gateway授权调用Lambda:
此时回到Lambda页面,进入Configuration -> Permissions
,在底部能够发现自动创建好一条Resource Policy
,以允许API Gateway调用此函数:
创建好Get Method后,可以点击闪电图标测试该接口:
从结果中看到,API Gateway把Lambda函数的执行结果返回:
部署API:
创建新的Stage,命名为dev
, 并进行Deploy:
部署完成后,会出现Invoke URL:
在浏览器访问Invoke URL,Lambda后端此时能够被公网访问: