Day 04 Azure Web App- 方便部署服务

Azure Web App- 方便部署服务

Azure Web App 提供一个方便部署服务的做法,使用者可以透过git来部署。之後要制作的 chatbot ,会直接部署在 Azure Web App 。部署之後,Azure Web App 会将使用者的程序,打包成docker image,在虚拟机器中展开成container执行。

申请 Web App

  1. 进入https://portal.azure.com/#home
  2. 点选建立资源
  3. 搜寻并选择Web App
  4. 设定基本资料
    • 选择自己建立的资源群组
    • 为自己的Web APP取名
    • 点选代码作为发布方式
    • 选取阶段堆叠:选择 Python3.7
    • 选择区域
    • 变更 SKU和大小:改为 B1 (无法选择 B1 时,则变更区域)
  5. 可以给予标签,以便将来使用服务太多时,可以针对标签搜寻
  6. 检阅 + 建立

设定 Azure Web App 与 git

设定使用者层级认证

# 在终端机中输入
az webapp deployment user set \
--user-name <使用者名称> --password <密码>

# 取得在Azure Web App内的git url
az webapp deployment source config-local-git \
--name <你的Web App名称> --resource-group <你的资源群组>
  • 使用者名称在 Azure 服务必须是唯一的,同一个名称不能申请超过一次,且不能包含 ‘@’ 符号。
  • 密码长度必须至少为 8 个字元,包含下列三个元素其中两个:字母、数字及符号。
  • 请记得自己的帐号密码,之後git push到 Azure Web App 就是以此帐号密码登入。

Git部署到 Azure Web App

  • 取得 git url
# 在终端机中输入
az webapp deployment source config-local-git \
--name <你的Web App名称> --resource-group <你的资源群组>
# 得到 URL
{
  "url": "https://<username>@<webappname>.scm.azurewebsites.net/linecv.git"
}
  • 加入git remote
git remote add azure <your_git_url>

  • 部署服务
git push azure master

查看 Web App log

  • 部署之後,可以透过 log 观察是否有 error,方便 debug
az webapp log tail \
--name <你的Web App名称> --resource-group <你的资源群组>

  • 不过,log 的量是有限制的,可以从 Azure portal 首页,进入 Auzre Web App ,来做调整:
    • 在 Auzre Web App 的页面,从左边的选单选择App Service 纪录进入设定页面。
    • 选择档案系统,分别调整配额(MB)和保留期限(天)。

ssh连线进入 Web App

  • 执行以下指令,其效果会在你的电脑建立连结 Azure Web App 的tunnel,并提供某个 port 和固定的帐号密码(root/Docker!),以便连线连线。
az webapp create-remote-connection \
-n <你的Web App名称> --resource-group <你的资源群组> &

  • 连线时帐号都是root,密码都是Docker!,只要依照上述 port 连线即可。
ssh [email protected] -p 57281

  • 如果有部属时需要用到的档案,也可以利用scp上传档案,只是一定要放在/home里。
scp -P 57281 config.json [email protected]:/home/config.json
  • 注意事项:如果推上去的程序码有问题,无法启动,那就无法建立连线,甚至已经建立的连线也会断掉。这时,请重新上传可以执行的程序码,程序码可以执行後,连线才会畅通。

环境变数

  • 设定环境变数
az webapp config appsettings set \
--name <你的Web App名称> --resource-group <你的资源群组> --settings <变数名称>=<变数值>

示范:

az webapp config appsettings set \
--name triathlontes --resource-group cv --settings TEST=123
  • 利用json档设定环境变数
az webapp config appsettings set \
--name <你的Web App名称> --resource-group <你的资源群组> --settings @你的json档

假设有个档案名为config.json,其内容如下

{
    "TEST": "123"
}

执行以下指令设定环境变数:

az webapp config appsettings set \
--name triathlontes --resource-group cv --settings @config.json
  • 列出环境变数
az webapp config appsettings list \
--name <你的Web App名称> --resource-group <你的资源群组>

部署简单的Flask网页

建立好 Web App 之後,可以先部署简单的Flask,来看看效果。

最简单的Flask网页

会需要两个档案,一个是要部署的python档案,另一个是requirements.txt,让系统在部属的同时,可以安装需要用到的python套件。

  • application.py
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    "hello world"
    return "Hello World!!!!!"
  • requirements.txt
Flask
  • 透过git将这两个档案上传。
  • 部署完之後,可以直接进入自己的 Web App 所提供的 URL https://<your web app name>.azurewebsites.net,看会不会出现 "hello world"。
  • 上述的URL可在Web App页面中的概观看到。

如果部署成功,我们就可以开始下一个步骤~打造自己的 chatbot。


<<:  Day 4:Kotlin 程序设计基础入门 (3)

>>:  @Day4 | C# WixToolset + WPF 帅到不行的安装包 [Wix基本架构]

{DAY 6} SQL 资料表的处理:Creating, Inserting & Updating

前言 今天要来处理SQL的schema 那什麽是schema呢? 从SQLBolt上查到的定义是:...

[LeetCode30] Day30 - END

教授说12点前要看到实验结果,但我组长看我不先发文,也想把我杀了,人真难做,我只好先来发文QQ 心得...

Day 18 - WooCommerce 测试环境建立 (下)

昨天我们安装完 WooCommerce 和修改 wp-config.php 关於 debug 的设定...

D23: 工程师太师了: 第12话

工程师太师了: 第12话 杂记: 今天看到一个议题 到底对自己做长远的规划是否比较好? 很多人都会对...

#27 JS: Timing Events - Part 1

What is timing event? "JavaScript can be exec...