aws云服务器怎么使用_使用AWS构建无服务器后端

article/2025/1/18 7:00:24

aws云服务器怎么使用

Contrary to its name, serverless architecture does have servers. However, developers do not need to know anything about them — managing and provisioning servers are the responsibilities of the serverless platform host (in this case, AWS). Developers only need to handle writing code and building their application. Another benefit of serverless is that developers will only be charged for the resources they use.

与它的名字相反,无服务器架构确实具有服务器。 但是,开发人员无需了解任何信息-管理和配置服务器是无服务器平台主机(在本例中为AWS)的职责。 开发人员只需要处理编写代码和构建他们的应用程序。 无服务器的另一个好处是,开发人员将只为他们使用的资源付费。

In this article, we will be using the following three services from AWS to implement a serverless back-end: Amazon API Gateway, AWS Lambda, and Amazon DynamoDB.

在本文中,我们将使用AWS的以下三种服务来实现无服务器后端: Amazon API Gateway , AWS Lambda和Amazon DynamoDB 。

When a client makes a HTTP request to a public API endpoint provided by API Gateway, a Lambda function will be invoked. The Lambda function manipulates the database provided by DynamoDB and then sends the response back to the client.

当客户端向API网关提供的公共API端点发出HTTP请求时,将调用Lambda函数。 Lambda函数处理DynamoDB提供的数据库,然后将响应发送回客户端。

Want to read this story later? Save it in Journal.

想稍后再读这个故事吗? 将其保存在 日记本中

先决条件 (Prerequisites)

  • AWS account with IAM (Identity and Access Management) user set up

    设置了具有IAM(身份和访问管理)用户的AWS账户
  • Node.js

    Node.js

We’ll be building a back-end that will handle requests from the client to get information from a database of ramen restaurants in New York City.

我们将构建一个后端,该后端将处理来自客户端的请求,以从纽约市的拉面餐厅数据库中获取信息。

We will write a Lambda function that will be invoked every time a user requests a restaurant. The function will get the restaurant from the DynamoDB table and respond to the front-end of the application with the details of the specified restaurant. The Lambda function will be invoked from the browser via API Gateway.

我们将编写一个Lambda函数,该函数将在每次用户请求餐馆时调用。 该功能将从DynamoDB表获取餐厅,并使用指定餐厅的详细信息响应应用程序的前端。 Lambda函数将通过API网关从浏览器中调用。

创建DynamoDB表 (Creating a DynamoDB Table)

Before we can implement the Lambda function, we will need to create a table in DynamoDB. In your AWS console, navigate to DynamoDB and click the Create table button to begin.

在实现Lambda函数之前,我们需要在DynamoDB中创建一个表。 在您的AWS控制台中,导航到DynamoDB并单击Create table按钮开始。

1. Let’s name the table “RamenRestaurants”.

1.让我们将表命名为“ RamenRestaurants ”。

2. Give the table a primary key (or partition key) of “RestaurantId” with a type of “String”. The primary key is a unique identifier for each item in the table. It is used for querying and accessing the data in the table. We will be querying the table via the RestaurantId later on when we write the lambda function.

2.为表赋予主键(或分区键)“ RestaurantId ”,类型为“字符串”。 主键是表中每个项目的唯一标识符。 它用于查询和访问表中的数据。 我们稍后将在编写lambda函数时通过RestaurantId查询表。

3. Use default settings should already be checked off by default.

3. 默认情况下,应已选中“ 使用默认设置”

4. Hit Create.

4.点击创建

Image for post

5. Congrats! You’ve just created your first DynamoDB table. The next screen will show you an overview of your new table.

5.恭喜! 您刚刚创建了第一个DynamoDB表。 下一个屏幕将向您显示新表的概述。

6. To add items to your new table, click on the Items tab and then hit the Create item button. Provide ‘1’ as the RestaurantId. To add attributes to the item, hit the ‘+’ button and choose Append and choose a type accordingly. I am adding the following attributes and information as my first item but feel free to create yours however you’d like.

6.要将项目添加到新表中,请单击“ 项目”选项卡,然后单击“ 创建项目”按钮。 提供“ 1”作为RestaurantId。 要将属性添加到项目,请点击“ +”按钮,然后选择“ 添加”并相应地选择一种类型。 我将以下属性和信息添加为我的第一项,但是可以根据需要随意创建。

Image for post

7. Let’s add a few more restaurants into our database.

7.让我们在数据库中添加更多的餐馆。

Image for post

创建Lambda函数 (Creating a Lambda Function)

Now that we have our DynamoDB table, we can create a Lambda function to handle an HTTP request. Navigate to the AWS Lambda console.

现在我们有了DynamoDB表,我们可以创建一个Lambda函数来处理HTTP请求。 导航到AWS Lambda控制台。

1. Click the Create function button,

1.单击创建功能按钮,

2. The Author from scratch option is the default choice. We will keep that option selected.

2.“ 从头开始创建”选项是默认选项。 我们将选择该选项。

3. We’ll name the function ‘ramen_read’ and select Node.js for the Runtime language. (AWS Lambda supports other runtimes but for this article, we will be be using Node.)

3.我们将函数命名为“ ramen_read”,然后选择Node.js作为运行时语言。 (AWS Lambda支持其他运行时,但在本文中,我们将使用Node。)

4. Next, click on the Create function button and on the next screen, you’ll see the details of your new lambda function.

4.接下来,单击“ 创建功能”按钮,然后在下一个屏幕上,您将看到新的lambda函数的详细信息。

5. If you scroll down a bit, you’ll see the Function code section, with some sample code. You can write functions right in the console editor, which works well for simple functions. Before we get into actually writing it, let’s go over some syntax of a typical lambda function.

5.如果向下滚动一点,您将看到“ 功能代码”部分以及一些示例代码。 您可以直接在控制台编辑器中编写函数,该函数非常适合简单的函数。 在开始实际编写它之前,让我们看一下典型的lambda函数的一些语法。

Every lambda function has a handler, which is a method that processes events.

每个lambda函数都有一个处理程序,该处理程序是一种处理事件的方法。

Image for post

As shown above, the handler method takes in three arguments: event, context, callback. The event object contains information from the invoker, which passes on information in the form of a JSON-formatted string. The context object contains information about the function itself, the invocation request, and its runtime environment. The callback argument is a function that takes in two arguments: an error, and a response. The callback function returns either the error or the response to the invoker.

如上所示,处理程序方法采用三个参数: eventcontextcallback event对象包含来自调用程序的信息,该调用程序以JSON格式的字符串形式传递信息。 context对象包含有关函数本身,调用请求及其运行时环境的信息。 callback参数是一个带有两个参数的函数:错误和响应。 回调函数将错误或响应返回给调用者。

6. Now, let’s start writing our “ramen_read” function! As mentioned before, you can write functions directly in the AWS Lambda console code editor. However, we will be writing our function in locally. Feel free to use your favorite IDE. This allows us to be able to create a git repository for our work.

6.现在,让我们开始编写我们的“ ramen_read”函数! 如前所述,您可以直接在AWS Lambda控制台代码编辑器中编写函数。 但是,我们将在本地编写函数。 随意使用您喜欢的IDE。 这使我们能够为我们的工作创建一个git存储库。

In your project folder, let’s create a new directory called “ramen_read.” Within that directory, run npm init and create a package.json file.

在您的项目文件夹中,创建一个名为“ ramen_read”的新目录。 在该目录中,运行npm init并创建一个package.json文件。

Create a new file called index.js and paste the below code within that file. Don’t forget to npm install aws-sdk!

创建一个名为index.js的新文件,并将以下代码粘贴到该文件中。 不要忘记npm install aws-sdk

To access the DynamoDB table, we are using the AWS Document Client. Theparamsobject is a JSON object containing the parameters needed to query the table. Then, we call the query method on the document client.

要访问DynamoDB表,我们正在使用AWS Document Client。 params对象是一个JSON对象,其中包含查询表所需的参数。 然后,我们在文档客户端上调用query方法。

Next, compress all the contents of the “ramen_read” folder into a zip file. On the Function code section of the AWS Lambda console, there is an Actions button on the top-right corner. Click on it and select Upload a .zip file to upload the zip file to AWS.

接下来,将“ ramen_read”文件夹的所有内容压缩到一个zip文件中。 在AWS Lambda控制台的“ 功能代码”部分,右上角有一个“ 操作”按钮。 单击它,然后选择上载.zip文件以将zip文件上载到AWS。

Image for post

Note: Another way to upload your zip file is by using AWS CLI. This would involve installing AWS-CLI, configuring user permissions, and running a few commands to upload the zip file from your terminal.

注意:另一种上传zip文件的方法是使用AWS CLI。 这将涉及安装AWS-CLI,配置用户权限以及运行一些命令以从终端上载zip文件。

7. Before we can test the lambda in the console, we need to configure permissions. Otherwise, if you try to invoke the function, you will receive an Invoke Error: ”errorType”: “AccessDeniedException”.

7.在控制台中测试lambda之前,我们需要配置权限。 否则,如果您尝试调用该函数,则会收到一个Invoke Error: ”errorType”: “AccessDeniedException”

On the lambda function console, click on Permissions, and then click on the Role name.

在lambda功能控制台上,单击“ 权限” ,然后单击“ 角色名称”

Image for post

A new tab will open to the IAM console and show you a summary of the role and permissions policies attached to the “ramen_read” lambda. Click on the blue Attach policies button. On the next page, search “DynamoDB” and select the AmazonDynamoDBReadOnlyAccess policy. For our example, we only need read only access. However, for other functions you may write in the future, you may need full access. Choose the one that best matches your needs. Click on the Attach policy button.

一个新选项卡将打开到IAM控制台,并向您显示“ ramen_read” lambda附带的角色和权限策略的摘要。 单击蓝色的附加策略按钮。 在下一页上,搜索“ DynamoDB”,然后选择AmazonDynamoDBReadOnlyAccess策略。 对于我们的示例,我们仅需要只读访问权限。 但是,对于将来可能要编写的其他功能,可能需要完全访问权限。 选择最符合您需求的产品。 单击附加策略按钮。

Image for post

8. Now we can test our lambda in the console! Go back to the AWS Lambda console for the “ramen_read” function. Click on the Test button at the top of the page.

8.现在我们可以在控制台中测试lambda了! 返回AWS Lambda控制台以使用“ ramen_read”功能。 单击页面顶部的“ 测试”按钮。

Image for post

A window will pop up to configure test events. We will provide a RestaurantId of 1 in JSON format. Name your event and click Create.

将弹出一个窗口来配置测试事件。 我们将以JSON格式提供1的RestaurantId。 为您的活动命名,然后单击创建。

Image for post

Click on the Test button again and you should see a successful execution result on the console, along with the response returned by the function execution. In this case, it is the information we provided in our database for Nakamura, which has a restaurant id of 1.

再次单击“ 测试”按钮,您应该在控制台上看到成功的执行结果,以及函数执行返回的响应。 在这种情况下,这就是我们在数据库中为Nakamura提供的信息,该餐馆的ID为1。

Image for post

使用API​​网关创建REST API (Creating a REST API with API Gateway)

Now that we have a lambda function, we will use API Gateway to get a public API endpoint that that will trigger the function. Navigate to the API Gateway console.

现在我们有了lambda函数,我们将使用API​​网关来获取将触发该函数的公共API端点。 导航到API Gateway控制台。

1. Click on Create API.

1.单击创建API

2. Choose REST API on the next screen and click Build.

2.在下一个屏幕上选择REST API ,然后单击Build

3. We will name the API “RamenRestaurantsAPI” as well and Create API.

3.我们也将API命名为“ RamenRestaurantsAPI”并创建API

Image for post

4. On the next screen, click on Action and select Create Resource. The Resource Name and Resource Path will be “restaurant.”

4.在下一个屏幕上,单击操作,然后选择创建资源资源名称资源路径将为“餐厅”。

Image for post
Image for post

5. Back on the RamenRestaurantsAPI screen, click the /restaurant resource you just made and then click Actions again and Create Resource. This time, the Resource Name will “id” and the Resource Path is “{id}”. This is how we will pass in the id of the restaurant in our query; for example, a GET request to /restaurant/id.

5.返回RamenRestaurantsAPI屏幕,单击您刚刚创建/ restaurant资源,然后再次单击ActionsCreate Resource。 这次, 资源名称将为“ id”, 资源路径为“ {id}”。 这就是我们在查询中传递餐厅ID的方式; 例如,对/ restaurant / id的GET请求。

Image for post

6. Now we will Create Method. Select GET as your method and hit the checkmark.

6.现在,我们将创建方法 。 选择GET作为您的方法,然后打勾。

Image for post
Image for post

7. The Setup for the method will pop up on the right.

7.方法的设置将在右侧弹出。

The Integration type is Lambda Function.

积分类型为Lambda函数。

Choose your Lambda Region. You can find it in the navigation bar in the top-right corner next to Support. In my case, my region is “us-east-1” and in the navigation bar, it says N. Virginia. The region is just a geographic location where Amazon has data centers. Usually, your region is the one you are physically located closest to.

选择您的Lambda地区 。 您可以在“ 支持”旁边右上角的导航栏中找到它 以我为例,我所在的地区是“ us-east-1”,在导航栏中显示为N. Virginia。 该地区只是亚马逊拥有数据中心的地理位置。 通常,您所在的地区是您物理上最靠近的地区。

Lastly, fill in the name of the Lambda Function and click Save.

最后,填写Lambda函数的名称,然后单击保存

Image for post

8. Click OK when the next window pops up confirming permissions.

8.在弹出下一个窗口确认权限时,单击“ 确定”

9. Now you will see the /restaurant — GET — Method Execution. We will need to create a mapping template for the Integration Request.

9.现在,您将看到/ restaurant — GET —方法执行 。 我们将需要为Integration Request创建一个映射模板。

Image for post

Mapping templates are how API Gateway transforms a request before it is sent to the back-end. After you click on Integration Request, you will see the last option on the screen for Mapping Templates.

映射模板是API Gateway在将请求发送到后端之前如何对其进行转换。 单击“ 集成请求”后 ,您将在“ 映射模板 ”屏幕上看到最后一个选项。

Select “When there are no templates defined” for Request body passthrough. Click Add mapping template and input “application/json” in Content-Type.

请求正文传递选择“当没有定义模板时”。 单击添加映射模板,然后在Content-Type中输入“ application / json”。

Underneath that box, a text editor will appear. The JSON for the mapping template is: {“RestaurantId”: “$input.params(‘id’)”}

在该框下面,将显示一个文本编辑器。 映射模板的JSON是: {“RestaurantId”: “$input.params('id')”}

Don’t forget to hit Save!

别忘了点击保存

Image for post

10. Go back to the Actions button at the top of the page and select Deploy API. On the window that pops up, create and name a deployment stage. We will just call it “prod” and then hit Deploy.

10.返回页面顶部的“ 操作”按钮,然后选择“ 部署API” 。 在弹出的窗口中,创建并命名部署阶段。 我们将其称为“ prod”,然后单击Deploy

11. After you hit deploy, you will be directed to the Stages page. Under the stages on the left-hand side, select the GET method that we created.

11.单击“部署”后,您将被定向到“ 阶段”页面。 在左侧的阶段下,选择我们创建的GET方法。

The invoke URL for the method is at the top of the screen.

该方法的调用URL在屏幕顶部。

Image for post

12. Input the invoke URL into your browser address bar and replace {id} with “1.” You will see the below response!

12.在浏览器地址栏中输入调用URL,并将{id}替换为“ 1”。 您将看到以下响应!

Image for post

Great! Your back-end is all set!

大! 您的后端已准备就绪!

Follow these steps to create other lambda functions, or new methods within your API as needed for your application. Make sure to re-deploy the API whenever you make changes.

请按照以下步骤在应用程序中根据需要在API中创建其他lambda函数或新方法。 进行更改后,请确保重新部署API。

📝 Save this story in Journal.

story将这个故事保存在Journal中 。

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

every‍💻每个星期天的早晨,您都可以在收件箱中等待本周最受关注的Tech故事。 阅读Tech Newsletter中的“值得注意” 。

翻译自: https://blog.usejournal.com/building-a-serverless-back-end-with-aws-5bb3642a3f4

aws云服务器怎么使用


http://chatgpt.dhexx.cn/article/yN3fHvOi.shtml

相关文章

铜川亚马逊云代理商:AWS云服务器怎么自建梯子?

AWS云服务器怎么自建梯子?   [本文由亚马逊云渠道商[聚搜云] [ www.4526.cn]撰写。 在当今互联网时代,隐私和安全性越来越受到人们的关注。为了保护个人信息和绕过网络地域限制,建立一个安全可靠的梯子变得越来越重要。使用AWS云服务器可以…

ubuntu18.0404 aws 云服务器启动和登陆 windows 虚拟机

ubuntu18.0404 aws 云服务器启动和登陆 windows 虚拟机 以及but your libfreerdp does not support H264. Please check Color Depth Settings.问题解决 打开远程界面,输入密码,即可登陆。 如果是ubuntu去连的话,就会出现如下错误&#xf…

在AWS云服务器上部署Docker,并使用Docker部署ownCloud私有云盘

1.启动实例(Ubuntu 20.04) 2.Mac 终端听过ssh方式连接AWS云服务器 2.1 2.2复制到终端 2.3:记得加上.ssh 2.4:链接成功 3.下载Docker 3.1:进入root权限界面 sudo -i 3.2 下载Docker 打开网址: Installing with Docker :: ownCloud Docume…

aws云服务器会自动扣费吗,亚马逊AWS云服务器不合理扣费怎么处理

有些小伙伴可能不知道,亚马逊AWS对新用户有个免费体验一年的活动。如果希望体验免费亚马逊AWS云服务器产品,或者看看他们后台面板长什么样,体验产品的速度和性能,又或者准备搭建一个免费t z,可以 注册玩玩。 很简单,全程基本都是中文,不用担心看不懂英文。 我是2018年6月…

AWS云服务器申请

目录 一、云服务器申请 (一)前言 (二)准备工作 (三)申请 (四)创建实例 (五)配置弹性IP (六)连接服务器实例 (七&am…

AWS服务器教程

一、网址 1、 2、准备邮箱、手机号、信用卡 3、注册时国籍要准确,否则信用卡不能用 信用卡卡号、有效期要正确(别填错卡片) 4、遇到手机不能接收短信,右上角support-support center-create case创建工单 5、注册后进入EC2&#xf…

aws云服务器申请及连接教程

首次发布时间:2021-04-09 更新时间:2022-05-02 SB审核说这篇文章涉及“翻墙” 概述 申请一个亚马逊aws免费服务器。其中申请免费服务器需要一个邮箱账号和一张信用卡(国内的就行,不用visa),准备一个域名&…

亚马逊AWS免费EC2服务器搭建总结

1、注册 如果你没有aws的账号需要注册 注册地址https://aws.amazon.com/cn/ 因为我已经注册成功,如果还没有注册的可以参照这个帖子非常详细 https://www.itbulu.com/free-aws.html 2、登陆 默认是8GB空间,我们可以扩展到30GB 安全组策略是有讲究的&…

腾讯云服务器如何搭建跨境电商亚马逊多店铺管理环境

前言 每个亚马逊卖家最担心的事情不是没有流量和订单,而是关于店铺账户的安全性。因为亚马逊非常重视买家购物体验,为了能够给买家提供更好的购物体验,在规则上是禁止同一个卖家在平台上同时操作多个账户的。如果被亚马逊发现,店…

2023亚马逊云科技中国峰会之Serverless

序言 Amazon Web Services,是Amazon.com推出的一系列云计算服务。 它提供了一系列的基础设施服务、平台服务和软件服务,希望可以帮助我们更轻松地构建和管理基于云的应用程序。 今天来学习一下 Serverless 本文会介绍以下六个模块: 为什么会…

亚马逊云服务器怎么搭建教程?

亚马逊云服务器怎么搭建教程?   一、购买亚马逊云服务器实例   作为使用亚马逊云服务器搭建教程的第一步,您需要前往亚马逊云官网注册账号并登录。在登录后,选择云服务器ECS产品,点击购买实例。 二、配置亚马逊云服务器实例  …

在免费的亚马逊服务器上手写个人网站是什么体验(文中有大量福利,别外传)

目录 本文引言部分: 本文必读部分: 本文福利白嫖部分: 接下来让我们在白嫖的亚马逊云服务Amazon EC2手写网页: 在亚马逊服务器上写网页三步走: 总结Amazon EC2(云服务器)的一些优势: 本次在亚马逊AW…

记录1年免费亚马逊AWS云服务器申请方法过程及使用技巧

转载 http://www.itbulu.com/free-aws.html 早年我们才开始学习网站建设的时候,会看到且也会寻找免费主机商,主要原因是那时候提供免费主机的商家还是比较靠谱的,而且那时候主机商并不是很多且成本也比较大,我们深知听到传闻有些…

AWS亚马逊云免费服务器终止实例后怎么恢复?

AWS亚马逊云免费服务器终止实例后怎么恢复?   亚马逊云(AWS)提供了一项强大且灵活的云计算服务,其中包括免费使用的EC2(弹性云服务器)实例。然而,有时我们可能会意外终止了一个EC2实例&#x…

亚马逊云免费搭建服务器创建你的实例

作为一个开发者,一直希望能拥有一台自己的服务器能部署应用,很早就打上了阿里云/腾讯云的主意,但是二者的试用时长都不长,阿里是最多30天,而腾讯更是只有7天.因为没有特别的需求所以一直搁置在一边 之前就听闻亚马逊云有一年的免费试用,但担心是国外的服务器或许不方便就没有尝…

使用亚马逊云搭建服务器(详细教程,附图)

一、创建aws账户 aws官网:https://aws.amazon.com/cn/ 1、点击创建aws账户 2、输入邮箱和账户名称,点击验证电子邮件地址 3、打开自己的邮箱,查看aws验证码 4、回到申请页面,输入验证码,验证邮箱 5、创建密码&#x…

亚马逊云aws12个月免费服务器搭建小结 (

转载自:http://blog.sina.com.cn/s/blog_53a30a3b0101hdx9.html 本文小结了在亚马逊aws(Amazon Web Services)云计算服务上注册一个免费的服务器的方法和一些注意事项。 郑重申明: aws云计算的免费是有条件的免费,aw…

如何利用亚马逊云免费搭建服务器?

如何利用亚马逊云免费搭建服务器?   在当今数字化时代,云计算已成为各行各业的核心支撑技术之一.如何利用亚马逊云免费搭建服务器,成为了许多人关注的焦点.下面将为您介绍详细的步骤和操作方法. 首先,打开亚马逊云(Amazon Web Services)官方网站,并注册一个免费账户.注册时需…

亚马逊云服务器是干嘛用的,亚马逊云服务器免费12月套餐及使用步骤

1、注册亚马逊云帐户,需要绑定外币信用卡,会扣除1美金。 2、登陆后右上角选择机房位置:我选的是东京机房,离中国近,访问速度还可以 3、启动实例选择操作系统,我直接选了Redhat版本的,熟悉哪个就选哪个 4、下一步的时候需要下载密钥,如果提示没有,在下拉框中选择新生成…

关于AWS使用(一)——申请付费版亚马逊云服务器的详细流程

一、创建账号: 注册准备: 1,一个在用邮箱 2,一张在用的有Visa或者Master标志的信用卡(要支持美元预授权) 3,一部在用的电话 4,一个支持key文件导入的ssh客户端(我后面只介绍linux下使用ssh命令行客户端) 5,最好是有翻墙软件(不是必要的,主要是访问速度的问题。耐心…