Java教程

掘金维护期间~用腾讯云 Serverless 快速生成“站点维护通知“

本文主要是介绍掘金维护期间~用腾讯云 Serverless 快速生成“站点维护通知“,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

最近掘金暂停服务 我们都看到了掘金的“站点维护通知“

我们也可以用腾讯云 Serverless 快速生成基于 Express 的“站点维护通知“

Demo

Live Demo - 掘银站点维护通知 (手动狗头)

快速开始

0. 安装 Serverless Cli

$ npm install -g serverless
复制代码

1. 创建配置文件

$ touch serverless.yml
复制代码
# serverless.yml

express:
  component: "@serverless/tencent-express"
  inputs:
    region: ap-guangzhou
    runtime: Nodejs8.9
复制代码

2. 安装 Express

$ npm init
$ npm i --save express
复制代码

ps: 这里可以直接参考文档 腾讯云 Express 组件

创建 app.js

app.js

const fs = require("fs");
const path = require("path");
const render = require("./render");
const express = require("express");
const app = express();

app.get("/", function (req, res) {
  let html = fs.readFileSync(path.resolve(__dirname, "./template.html"), {
    encoding: "utf-8",
  });
  html = render(html, {
    app: "你的应用名称", // 应用名称
    start: "6 月 5 日",
    end: "7 月 5 日",
  });
  res.send(html);
});

module.exports = app;
复制代码

创建模板代码

template.html

<!DOCTYPE html>
<html lang="zh-Hans">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>暂停服务通知</title>
    <style>
      body {
        font-family: PingFang SC, -apple-system, Arial, Microsoft YaHei, Microsoft
            JhengHei, Helvetica Neue, sans-serif;
        text-rendering: optimizeLegibility;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        line-height: 1;
        height: 100vh;
        background-color: #3498db;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
      }

      .notice {
        color: #333;
        border-radius: 3px;
        padding: 35px 30px;
        background-color: #fff;
        box-shadow: -4px 4px 5px rgba(0, 0, 0, 0.3);
        max-width: 500px;
        text-align: center;
      }

      p {
        line-height: 1.4;
        text-align: left;
      }

      p:last-child {
        margin-top: -8px;
      }

      a {
        text-decoration: none;
      }

      .bold {
        font-weight: 500;
      }

      .text-right {
        text-align: right;
        margin-right: 20px;
      }

      @media (max-width: 500px) {
        h2 {
          font-size: 20px;
        }

        p {
          font-size: 14px;
        }
      }
    </style>
  </head>

  <body>
    <div class="notice" align="center">
      <h2>${app}公告:${start} 到 ${end} 站点维护</h2>
      <p>致亲爱的${app}用户:</p>
      <p>
        <span class="bold">${start} ~ ${end} </span
        >期间,${app}将对服务器和数据库进行升级维护,在此期间会暂停网站及应用的访问,访问恢复时间以实际为准,请各位谅解。
      </p>
      <p class="text-right">${app}</p>
      <p class="text-right">${start}</p>
    </div>
  </body>
</html>
复制代码

ps: 这里参考的掘金服务维护页面代码

创建 render.js

render.js

module.exports = function (tpl, variables) {
  for (let key in variables) {
    const reg = new RegExp("\\$\\{" + key + "\\}", "g");
    tpl = tpl.replace(reg, variables[key]);
  }
  return tpl;
};
复制代码

ps: render.js 来自腾讯云示例代码

部署

$ sls --debug
复制代码

ps: 部署完成后会得到一个自己的 URL

ps: 例如我得到的 URL 是 service-lxeq5p0s-1258796045.gz.apigw.tencentcs.com/release/

参考代码

Repository: serverless-express-example

参考文档

tencent-express 腾讯云 serverless

给作者加鸡蛋

LATOPAY

这篇关于掘金维护期间~用腾讯云 Serverless 快速生成“站点维护通知“的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!