使用 AWS Lambda 函数 URL 简化 API 访问:通过内置安全性处理 GET、POST、PUT 和 DELETE
在 aws 上构建无服务器应用程序时,aws lambda 通常是无需预置或管理服务器即可运行代码的首选解决方案。传统上,aws api gateway 用于将 lambda 函数公开为 restful api。但是,aws 引入了 lambda 函数 url,这是一种通过 https 调用 lambda 函数的更简单方法,无需配置 api 网关的开销。在这篇文章中,我们将探讨如何使用 lambda 函数 url 来处理不同的 http 方法(get、post、put 和 delete),同时合并安全身份验证。
lambda 函数 url 为您的 lambda 函数提供专用的 http(s) 端点。此功能对于单功能微服务、轻量级 api,或者当您需要以最少的设置向公众公开 lambda 函数时特别有用。
首先,我们创建一个 lambda 函数并配置其 url。您可以通过 aws 管理控制台、aws cli 或基础设施即代码 (iac) 工具(例如 aws cloudformation 或 terraform)来执行此操作。
创建 lambda 函数:
创建函数 url:
保护您的函数 url:
由函数 url 触发的 lambda 函数可以在单个函数中处理多个 http 方法 - get、post、put 和 delete。这是一个如何实现这一点的简单示例:
import json def lambda_handler(event, context): # determine the http method http_method = event['httpmethod'] if http_method == 'get': return handle_get(event) elif http_method == 'post': return handle_post(event) elif http_method == 'put': return handle_put(event) elif http_method == 'delete': return handle_delete(event) else: return { 'statuscode': 405, 'body': json.dumps({'message': 'method not allowed'}) } def handle_get(event): # handle get request logic return { 'statuscode': 200, 'body': json.dumps({'message': 'get request received'}) } def handle_post(event): # handle post request logic return { 'statuscode': 200, 'body': json.dumps({'message': 'post request received'}) } def handle_put(event): # handle put request logic return { 'statuscode': 200, 'body': json.dumps({'message': 'put request received'}) } def handle_delete(event): # handle delete request logic return { 'statuscode': 200, 'body': json.dumps({'message': 'delete request received'}) }
如果您选择使用 aws_iam 来保护函数 url,客户端将需要使用 aws sigv4(签名版本 4)对请求进行签名。以下是如何发出经过身份验证的请求的简要概述:
例如,使用 aws cli:
aws lambda invoke-url https://<your-function-url-id>.lambda-url.<region>.on.aws/<your-path> \ --http-method POST \ --body '{ "key": "value" }' \ --region <region> \ --profile <aws-profile></aws-profile></region></your-path></region></your-function-url-id>
aws lambda 函数 url 提供了一种通过 http 公开 lambda 函数的简化方法,无需 api 网关。通过在 lambda 函数中处理不同的 http 方法(get、post、put、delete)并使用 aws iam 保护访问,您可以快速构建轻量级、安全的 api。无论您是开发简单的微服务还是更复杂的应用程序,lambda 函数 url 都是 aws 工具包的强大补充。
以上就是使用 AWS Lambda 函数 URL 简化 API 访问:通过内置安全性处理 GET、POST、PUT 和 DELETE的详细内容,更多请关注php中文网其它相关文章!