在过去的几年里,云计算和无服务器架构已经迅速发展,成为现代应用开发的重要组成部分。AWS作为云计算领域的领导者,提供了一套强大的无服务器服务,帮助开发人员构建高度可扩展、弹性和安全的应用程序。本文将介绍通过AWS API Gateway封装Lambda调用Amazon Bedrock的实验步骤
0. 实验架构
红色方框内的内容
1. 实验准备
1.1 AWS账号
需要一个AWS Global的账号,并且有相应的权限,本例是Full Administrator权限。
2. 创建适用于Lambda的IAM role
2.1 创建IAM role
打开AWS portal,选择Service -> Security, Identity, & Compliance -> IAM
在角色页面,选择创建角色
在选择可信实体页面,选择服务为Lambda,点击下一步
在添加权限页面,添加相应的权限,本例是使用Lambda操作Bedrock,所以加上了BedrockFullAccess权限
在命名、查看降额创建页面,输入角色名称,并点击下一步
3. 创建并配置Lambda
打开AWS portal,选择Service->Compute -> Lambda
在Lambda页面,选择Function,点击Create function
输入function的名字,选择Nodejs以及相应的版本,点击创建
在代码部分,输入相应的NodeJS代码
代码输入完成后,点击File->Save,保存代码,同时点击Deploy将代码部署生效
打开配置标签也,选择环境变量页面,增加以下两个字段
KEY= AWS_NODEJS_CONNECTION_REUSE_ENABLED
Value=1
KEY= MODEL_ID
Value= anthropic.claude-3-sonnet-20240229-v1:0
4. 创建API Gateway
打开AWS portal,选择Service->Networking & Content Delivery -> API Gateway
在API Gateway页面,点击创建
在API类型选择页面,选择REST API,点击build
选择新建API,输入API Gateway的名称,API Gateway的类型选择Edge,点击创建
API创建后,相应的方法以及Path如下
其中,每种方法开启CORS,并且在Integration response标签页,将以下三个header字段制成*。
在ANY方法页面上,将后端选择成Lambda,并选择相应的Lambda函数,同时enable Lambda proxy Integration选项
Any方法的Method Response标签也,添加以下三个头部信息
配置好以后,需要点击右上角的Deploy,将API Gateway部署成prod。部署成功后如下:
部署成功后,如下界面:
CORS一定要开启,否则前端调用API的时候,会出现跨域报错