原来Python也能做云原生应用 Flask篇

Flask 成为云原生应用程序一个非常非常简单的笔记。
在这里插入图片描述

Flask 介绍

使 Flask 成为云原生应用程序的步骤很简单:

  • 在 Flask 中创建网站
  • 创建一个 Dockerfile
  • 构建 Docker 镜像
  • 发布 Docker 映像
  • 使用 Docker 映像创建 Azure Web 应用

在这里插入图片描述

在Flask中创建一个网站

$ mkdir flaskwebapps
$ cd flaskwebapps
$ touch app.py
$ touch requirements.txt

在 app.py 添加以下代码。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

在 requirements.txt 添加。

Flask

创建一个 Dockerfile

$ touch Dockerfile

Dockerfile 添加代码。

FROM python:3.6.5

RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN pip install -r requirements.txt

EXPOSE 5000
CMD ["python3", "/code/app.py"]

构建 Docker 镜像

$ docker build -f Dockerfile -t flaskwebapps:latest .

发布Docker镜像

将 Docker 映像发布到Azure Container Registry (ACR)、Docker Hub

发布到 ACR 的映像由 Azure CLI 注册。

$ az acr create --resource-group [资源组名称] --name [ACR 名称] --sku [编号] --admin-enabled true --location [与资源组相同的位置]
$ docker tag [标签] [图像名称]
$ az acr login --name [ACR 名称]
$ docker push [图像名称]

使用 Docker 镜像创建 Azure Web Apps

在 Azure CLI 中创建应用服务计划。

$ az appservice plan create --resource-group [资源组名称] --name [应用服务计划名称] --sku [指定 B1 或 S1] --location [与资源组相同的位置] --is-linux

在 Azure CLI 中使用应用服务计划和 ACR Docker 映像作为参数创建应用服务。

$ az webapp create --resource-group [资源组名称] --plan [应用服务计划名称] --name [应用服务名称] --deployment-container-image-name [图像名称]

将应用服务与 Azure CLI 中的 ACR 相关联。

$ az webapp config container set --name [应用服务名称] --resource-group [资源组名称] --docker-custom-image-name [图像名称] --docker-registry-server-url [ACR 位置] ] --docker-registry-server-user [ACR 名称] --docker-registry-server-password [ACR 密码]

在 Azure CLI 中将 CD 设置为 App Service。

$ az webapp deployment container --resource-group [资源组名称] --name [应用服务名称] --enable-cd true

在 Azure CLI 中的 ACR 上设置 webhook。

$ az acr webhook create --name [应用服务名称] --resource-group [资源组名称] --scope [ACR 名称和标签位置] --location [与资源组相同的位置]- -uri [URI] --actions 推送删除

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20288327/article/details/124100269