serverless搭建html,serverless 项目配置及创建helloworld应用

1.1 使用serverless环境搭建

在实践demo之前,我们需要注册一个AWS账号,AWS提供了一年的免费使用。去官网注册下(https://aws.amazon.com/cn/)

1.2 安装 serverless

首先我们需要安装serverless框架,如下命令:

npm install -g serverless

使用命令如下所示:

serverless create --template aws-nodejs --path maebarai-backend

如下图所示:

7ace86f80fe193390024b44d9976c99d.png

因此在我项目目录下,会生成 hello-world 文件夹,该文件夹包含两个文件:handler.js 和 serverless.yml。 如下图所示:

4f3a0a37a7f9f47273c81a1f412bbb2c.png

1. .gitignore 代码如下:

95a917c4d0c88ab38f43804e761e0890.png

.gitignore里面有3个忽略项,分别如下:

node_modules, 是Node.js包管理安装后的目录。

jspm_packages: jspm是javascript包管理器,它是基于 SystemJS这种通用模块加载器之上的包管理器。

.serverless: 它是一个serverless部署时的打包生成目录,当我们执行 serverless deploy 时才会生成。

2. handler.js 代码如下:

f1c0e1d4341d4a016f2ca03dd0cfb8ed.png

handler.js 是通过如上命令 serverless create --template aws-nodejs --path maebarai-backend 中的 --template aws-nodejs 参数生成出来的js文件,如上hello函数代码就是返回一个json文件。

3. serverless.yml 的内容如下:

service: maebarai-backend # NOTE: update this with your service name

provider:

name: aws

runtime: nodejs8.10

functions:

hello:

handler: handler.hello

该文件是serverless的描述文件,服务名为:maebarai-backend, 服务器提供商为:aws, 运行环境为:nodejs10.x

functions:

hello:

这样的,如上hello是调用时的名称。如代码:serverless invoke -f hello -l 这样的语法来触发hello函数。如果我们的hello改成 helloxxx, 那么我们调用的函数命令就变成:serverless invoke -f helloxxx -l

functions:

hello:

handler: handler.hello

如上代码:handler: 是不能乱改的。handler.hello 这个的含义:点号(.)前面的handler是文件名,也就是我们说的 handler.js,点号后面的 hello 是默认的函数名,也就是说我们的 handler.js中的 module.exports.hello 这个导出的函数名。如果我们现在把handler.js 重命名为 handler2.js 的话,那么我们需要把 serverless.yml里面的内容改成:handler: handler2.hello.  同理如果我们把handler.js中的hello函数改成其他名称的话,那么serverless.yml的调用名也要改了。

4. 部署 hello-world

使用如下命令:

serverless deploy -v

注意:-v 不是显示版本,而是 --verbose 详细信息

如上命令,当我们执行 serverless deploy 命令之后就会变成如下目录:

|----- hello-world

| |--- .serverless

| | |--- cloudformation-template-create-stack.json

| | |--- cloudformation-template-update-stack.json

| | |--- hello-world.zip

| | |--- serverless-state.json

| |--- .gitignore

| |--- handler.js

| |--- serverless.yml

hello-world.zip 是项目代码文件打包后的压缩文件。

serverless-state.json 是服务部署后的信息,包含服务名称,服务提供商等信息。

5. 调用服务

然后我们需要通过如下命令来触发下该函数,命令如下所示:

serverless invoke -f hello -l

然后我们服务器会返回如上结果,如上返回的结果就是我们项目下的 handler.js 中的hello函数返回的代码。也就意味着,我们的第一个服务已经成功上线了。

如上命令解释:

invoke 是调用服务的意思。

-f 是表示 function 名的含义

-l 是表示log(日志)的含义

如上 serverless 我们也可以写成它的缩写形式 sls,

-d 表示传入的data(数据)

更多的 invoke 解释,我们只需要使用命令: sls invoke -h 查看即可:

标签:serverless,invoke,创建,helloworld,js,handler,如下,hello

来源: https://www.cnblogs.com/Julie-ye/p/11995459.html