UNPKG

serverless

Version:

Serverless Framework - Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more

144 lines (117 loc) 6.26 kB
<!-- title: Serverless Framework - Components 最佳实践 - 部署支持数据库操作的全栈应用 menuText: 部署支持数据库操作的全栈应用 menuOrder: 1 layout: Doc --> ## 操作场景 该模板可以快速部署一个基于 Vue + Express + PostgreSQL 的全栈 Serverless 应用。主要包含以下组件: - Serverless RESTful API:通过云函数和 API 网关构建的 Express 框架实现 RESTful API。 - Serverless 静态网站:前端通过托管 Vue.js 静态页面到 COS 对象存储中。 - PostgreSQL Serverless:通过创建 PostgreSQL DB 为全栈网站提供数据库服务。 - VPC:通过创建 VPC 和 子网,提供 SCF 云函数和数据库的网络打通和使用。 ## 操作步骤 ### 安装 通过 npm 全局安装 [Serverless CLI](https://github.com/serverless/serverless): ```shell $ npm install -g serverless ``` ### 配置 1.新建一个本地文件夹,使用`create --template-url`命令,下载相关 template。 ```console serverless create --template-url https://github.com/yugasun/tencent-serverless-demo/tree/master/fullstack-serverless-db ``` ```bash $ touch .env # 腾讯云的配置信息 ``` 2.在项目模板中找到`.env.example`文件,修改名称为`.env`,并在其中配置对应的腾讯云 SecretId 和 SecretKey 信息和地域可用区等信息。 ```text # .env TENCENT_SECRET_ID=xxx TENCENT_SECRET_KEY=xxx # 地域可用区配置 REGION=ap-beijing ZONE=ap-beijing-3 ``` > ? - 如果没有腾讯云账号,请先 [注册新账号](https://cloud.tencent.com/register)。 - 如果已有腾讯云账号,可以在 [API 密钥管理](https://console.cloud.tencent.com/cam/capi) 中获取 SecretId 和 SecretKey。 3.通过执行以下命令,安装所需依赖: ```console $ npm run bootstrap ``` ### 部署 通过`sls`命令进行部署,并可以添加`--debug`参数查看部署过程中的信息: > ?`sls`是`serverless`命令的简写。 ```bash $ sls --debug DEBUG ─ Resolving the template's static variables. DEBUG ─ Collecting components from the template. DEBUG ─ Downloading any NPM components found in the template. DEBUG ─ Analyzing the template's components dependencies. DEBUG ─ Creating the template's components graph. DEBUG ─ Syncing template state. DEBUG ─ Executing the template's components graph. DEBUG ─ Creating vpc serverlessVpc... DEBUG ─ Create vpc serverlessVpc success. DEBUG ─ Creating subnet serverlessSubnet... DEBUG ─ Create subnet serverlessSubnet success. DEBUG ─ DB instance serverless existed. DEBUG ─ Compressing function fullstack-serverless-db file to /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/.serverless/fullstack-serverless-db.zip. DEBUG ─ Compressed function fullstack-serverless-db file successful DEBUG ─ Uploading service package to cos[sls-cloudfunction-ap-shanghai-code]. sls-cloudfunction-default-fullstack-serverless-db-1585641392.zip DEBUG ─ Uploaded package successful /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/.serverless/fullstack-serverless-db.zip DEBUG ─ Deploying function fullstack-serverless-db DEBUG ─ Updating code... DEBUG ─ Updating configure... DEBUG ─ Setting tags for function fullstack-serverless-db DEBUG ─ Deployed function fullstack-serverless-db successful DEBUG ─ Starting API-Gateway deployment with name ap-shanghai-apigateway in the ap-shanghai region DEBUG ─ Service with ID service-xxxxx created. DEBUG ─ API with id api-xxxxx created. DEBUG ─ Deploying service with id service-xxxxx. DEBUG ─ Deployment successful for the api named ap-shanghai-apigateway in the ap-shanghai region. DEBUG ─ Preparing website Tencent COS bucket fullstack-serverless-db-120000000. DEBUG ─ Bucket "fullstack-serverless-db-120000000" in the "ap-shanghai" region already exist. DEBUG ─ Setting ACL for "fullstack-serverless-db-120000000" bucket in the "ap-shanghai" region. DEBUG ─ Ensuring no CORS are set for "fullstack-serverless-db-120000000" bucket in the "ap-shanghai" region. DEBUG ─ Ensuring no Tags are set for "fullstack-serverless-db-120000000" bucket in the "ap-shanghai" region. DEBUG ─ Configuring bucket fullstack-serverless-db-120000000 for website hosting. DEBUG ─ Bundling website environment variables. DEBUG ─ Website env written to file /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/frontend/src/env.js. DEBUG ─ Running npm run build in /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/frontend. DEBUG ─ Uploading website files from /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/frontend/dist to bucket fullstack-serverless-db-120000000. DEBUG ─ Starting upload to bucket fullstack-serverless-db-120000000 in region ap-shanghai DEBUG ─ Uploading directory /Users/tina/Desktop/fullstack-db/fullstack-serverless-db/frontend/dist to bucket fullstack-serverless-db-120000000 DEBUG ─ Website deployed successfully to URL: https://fullstack-serverless-db-120000000.cos-website.ap-shanghai.myqcloud.com. frontend: url: https://fullstack-serverless-db-120000000.cos-website.ap-shanghai.myqcloud.com env: apiUrl: https://service-xxxxx-120000000.sh.apigw.tencentcs.com/release/ api: functionName: fullstack-serverless-db functionOutputs: ap-shanghai: Name: fullstack-serverless-db Runtime: Nodejs8.9 Description: This is a function created by serverless component region: ap-shanghai apiGatewayServiceId: service-xxxxx url: https://service-xxxxx-120000000.sh.apigw.tencentcs.com/release/ postgresql: region: ap-shanghai zone: ap-shanghai-2 dBInstanceName: serverless connects: private: postgresql://tencentdb_xxxxx:secretkeyofdb0.0.0.0:9000/tencentdb_xxxxx vpc: region: ap-shanghai zone: ap-shanghai-2 vpcName: serverlessVpc subnetName: serverlessSubnet subnetId: subnet-xxxxx vpcId: vpc-xxxxx 33s › frontend › done ``` ### 更多组件 您可以在 [Serverless Components](https://github.com/serverless/components) repo 中查询更多组件的信息。