• 使用 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)
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    在这里插入图片描述
    图 4. Deploy (布署) Lambda 函数

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

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

    在这里插入图片描述
    图 5. 配置测试事件

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

    在这里插入图片描述
    图 6. 进行测试事件,检验代码执行结果

    步骤 3. 添加 API Gateway 触发器

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

    在这里插入图片描述
    图 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)

    在这里插入图片描述
    图 8. 在添加触发器画面中进行 API Gateway 配置

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

    在这里插入图片描述
    图 9. 在配置中查看触发器

    步骤 4. 使用 Postman 进行测试

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

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

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

    在这里插入图片描述
    图 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
  • 相关阅读:
    OpenSSL生成CA证书
    一阶惯性滤波器的传递函数与时域实现
    Shell脚本之正则表达式详解
    安卓玩机搞机----不用刷第三方官改固件即可享受“高级设置”的操作 ChiMi安装使用步骤
    无线网络存在的安全问题及现代化解决方案
    用cpolar发布Ubuntu上的网页(1)
    MySQL进阶_1.逻辑架构和SQL执行流程
    4.3 Pollard‘s rho algorithm
    二十、自定义类型:枚举和联合
    我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量
  • 原文地址:https://blog.csdn.net/m0_50614038/article/details/128155030