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 推送删除