AWS上Serverless实验(一)--- 使用Lambda+API Gateway打造后端应用

在过去的几年里,云计算和无服务器架构已经迅速发展,成为现代应用开发的重要组成部分。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的时候,会出现跨域报错

  • 47
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在AWS云上使用Java,您可以使用Lambda函数来运行Java代码。Lambda函数是一种无服务器计算服务,可以让您运行代码而无需管理服务器。您可以将Java代码打包成一个JAR文件,并将其上传到Lambda函数中。然后,您可以使用API Gateway来创建API端点,以便您的应用程序可以与Lambda函数通信。 以下是使用CloudFormation创建Lambda函数和API Gateway的步骤: 1. 编写Lambda函数代码,并将其打包成JAR文件。您可以使用Maven或Gradle等构建工具来构建和打包代码。 2. 使用CloudFormation模板定义Lambda函数和API Gateway。下面是一个简单的模板示例: ``` Resources: MyLambdaFunction: Type: AWS::Lambda::Function Properties: Code: S3Bucket: my-bucket S3Key: my-lambda-function.jar Handler: com.example.MyLambdaFunctionHandler::handleRequest Role: !GetAtt MyLambdaExecutionRole.Arn Runtime: java8 MyApiGateway: Type: AWS::ApiGateway::RestApi Properties: Name: my-api-gateway MyApiGatewayResource: Type: AWS::ApiGateway::Resource Properties: ParentId: !GetAtt MyApiGateway.RootResourceId PathPart: my-resource MyApiGatewayMethod: Type: AWS::ApiGateway::Method Properties: RestApiId: !Ref MyApiGateway ResourceId: !Ref MyApiGatewayResource HttpMethod: GET AuthorizationType: NONE Integration: Type: AWS_PROXY IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambdaFunction.Arn}/invocations MyLambdaExecutionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: MyLambdaExecutionPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - logs:CreateLogGroup - logs:CreateLogStream - logs:PutLogEvents Resource: arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/my-lambda-function:* ``` 该模板定义了一个Lambda函数,一个API Gateway,一个API Gateway资源和一个API Gateway方法。API Gateway方法使用AWS_PROXY集成类型,以便将请求传递给Lambda函数。 3. 使用CloudFormation部署模板。您可以使用AWS CLI或AWS管理控制台等工具来部署模板。 4. 测试API端点。使用API Gateway提供的URL测试API端点,并确保它可以正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值