使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda

AWS Academy Learner Lab 是提供一个帐号让学生可以自行使用 AWS 的服务,让学生可以在 100 USD的金额下,自行练习所要使用的 AWS 服务,如何进入 Learner Lab 请参考 使用 Learner Lab - 学生,以下示范如何使用 API Gateway 触发 AWS Lambda,并取得 post 上传的内容。

步骤 1. 创建 Lambda 函数

AWS 网页控制台 上方的搜寻图示中输入 Lambda ,单击 Lambda 服务,如下图所示。

在这里插入图片描述
图 1. AWS 网页控制台中找寻 Lambda 服务

单击 创建函数 服务,如下图所示。

在这里插入图片描述
图 2. 创建 Lambda 函数

设定 Lambda 函数如下

  • 从头开始创作
    基本信息
  • 函数名称: API2Lambda
  • 运行时: Python 3.8
  • 架构: x86_64
    权限
  • 执行角色: 使用现有角色 LabRole (很重要、很重要、很重要)

在这里插入图片描述
图 3. 设定 Lambda 函数

步骤 2. 布署 Lambda 函数

因为这次代码的目的是读取 API Gateway 所传递过来的参数,所以将代码修改如下:

import json

def lambda_handler(event, context):
  return {
    'statusCode': 200,
    'body': json.dumps(event, indent=4, default=str, ensure_ascii=False)
  }

修改完毕后单击 Deploy (布署),必须要先布署才算是将代码布署到云计算中,如下图所示。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第1张图片
图 4. Deploy (布署) Lambda 函数

接著单击上图中的 Test 按钮,会出现配置测试事件弹窗,配置如下:

  • 测试事件操作: 创建新事件
  • 事件名称: apigatewayPOST
  • 事件共享设置: 私有
  • 模版: apigateway-aws-proxy
    下方的事件JSON会自动填写上述模版所生成的JSON范例,无需修改,直接单击保存即可。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第2张图片
图 5. 配置测试事件

接著再单击 Test 按钮即可运行,运行结果会出现在 Execution result 视窗,可以看到将模拟 API Gateway 请求的信息透过 event 这个参数取得内容。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第3张图片
图 6. 进行测试事件,检验代码执行结果

步骤 3. 添加 API Gateway 触发器

在 Lambda 主画面上方找到添加触发器按钮,如下图所示。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第4张图片
图 7. 在 Lambda 主画面中进行添加触发器

进入添加触发器画面,配置如下:

添加触发器

  • 触发器配置: API Gateway
  • Intent: Create a new API
  • API type: HTTP API
  • Security: Open
    Additional settings
  • API name: API2Lambda-API
  • Deployment stage: default
  • 勾选 Cross-origin resource sharing (CORS)

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第5张图片
图 8. 在添加触发器画面中进行 API Gateway 配置

添加触发器后可以在配置中查看触发器的结果,如下图所示。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第6张图片
图 9. 在配置中查看触发器

步骤 4. 使用 Postman 进行测试

接著使用常见的 API 测试软件来进行测试,在本机端打开 Postman,并输入相关的配置。

  • URL 网址:将上图中的 API endpoint 输入
  • 请求方法: POST
  • Body: 选择 raw,格式为 JSON
    内容为
{
    "key": "Value"
}

接著点击送出Send就得到完整的请求信息回应 (Response),在第 89 行中可以看到请求的内容,表示可以在 Lambda 中,透过 event 参数取得完整请求信息,使用 body 属性,就可以取得请求内容。

使用 Learner Lab - 使用 API Gateway 触发 AWS Lambda_第7张图片
图 10. 在postman进行 API 测试

感谢亚马逊云科技王向炜 Alan Wang 提供的协助。

参考资料

  • AWS Academy, https://aws.amazon.com/cn/training/awsacademy/
  • AWS Academy 简介, https://blog.csdn.net/m0_50614038/article/details/123778237
  • AWS Academy LMS (Learning Management System) 基础 – 教师, https://blog.csdn.net/m0_50614038/article/details/123778561
  • AWS Academy LMS 申请开课 - 教师, https://blog.csdn.net/m0_50614038/article/details/123778838
  • AWS Academy LMS 新增学生 - 教师, https://blog.csdn.net/m0_50614038/article/details/123779068

你可能感兴趣的:(AWS,教育资源,AWS,Lambda,API,Gateway,gateway,aws,云计算)