微软在 Ignite 2021 大会上发布了预览版的Azure Container Apps,这是一个完全托管的无服务器容器运行时,用于大规模构建和运行现代应用程序。从2021 年 11 月 2 日起,Azure 容器应用程序可在公共预览中使用。虽在服务到达 GA 之前,Azure Container Apps 可能会发生变化。因此我们可以用来学习,不建议用于生产。
Azure Container Apps是什么?
Azure Container Apps的核心组件
Azure Container Apps有一系列组件,我们必须了解并利用这些组件来构建企业级云本地应用程序。
下面我们就来玩一下Azure Container App 体验一下,部署一个简单的容器到Azure容器应用程序,具体文档参见 https://docs.microsoft.com/zh-cn/azure/container-apps/get-started?tabs=bash 。
需要注意的是当前Azure Container App 只在 北欧(northeurope
) 和加拿大中部 (canadacentral
)这两个区域可用
首先,我们必须为 Azure CLI 安装 Azure Container App 扩展。
az extension add \ --source https://workerappscliextension.blob.core.windows.net/azure-cli-extension/containerapp-0.2.0-py2.py3-none-any.whl
设置以下环境变量:
RESOURCE_GROUP="my-containerapps" LOCATION="canadacentral" LOG_ANALYTICS_WORKSPACE="containerapps-logs" CONTAINERAPPS_ENVIRONMENT="containerapps-env"
定义这些变量后,可以创建一个资源组来组织与新容器应用相关的服务。
az group create \ --name RESOURCE_GROUP \ --location "
升级 CLI 并提供新的资源组后,可以创建容器应用环境并部署容器应用。
Azure 容器应用中的环境围绕一组容器应用创建安全边界。 部署到相同环境的容器应用部署在同一虚拟网络中,并将日志写入同一个 Log Analytics 工作区。
Azure Log Analytics 用于监视创建容器应用环境时所需的容器应用。
使用以下命令创建新的 Log Analytics 工作区:
az monitor log-analytics workspace create \ --resource-group RESOURCE_GROUP \ --workspace-name LOG_ANALYTICS_WORKSPACE
接下来,检索 Log Analytics 客户端 ID 和客户端密码。请确保单独运行每个查询,以便有足够的时间完成请求。
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az monitor log-analytics workspace show --query customerId -g RESOURCE_GROUP -n LOG_ANALYTICS_WORKSPACE --out tsv`
LOG_ANALYTICS_WORKSPACE_CLIENT_SECRET=`az monitor log-analytics workspace get-shared-keys --query primarySharedKey -g RESOURCE_GROUP -n LOG_ANALYTICS_WORKSPACE --out tsv`
单个容器应用部署到 Azure 容器应用环境。 若要创建环境,请运行以下命令:
az containerapp env create \ --name CONTAINERAPPS_ENVIRONMENT \ --resource-group RESOURCE_GROUP \ --logs-workspace-id LOG_ANALYTICS_WORKSPACE_CLIENT_ID \ --logs-workspace-key LOG_ANALYTICS_WORKSPACE_CLIENT_SECRET \
执行到这里的时候报错了
Command group 'containerapp env' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus MissingRegistrationForLocation: The subscription is not registered for the resource type 'kubeEnvironments' in the location 'canadacentral'. Please re-register for this provider in order to have access to this location.
后面我们用Azure的Portal 页面来进行下面的实验
通过Portal 进行创建也失败了。