以最快速度启动 Azure 容器应用程序(ACA)

以最快速度启动 Azure Container Apps (ACA)

spring-boot_on_azure-container-apps.png

这个目标

我们将在 Windows 11 上使用 Linux 进行云开发。

您可以在这里查看文章列表。

 

实现

我将使用Shell脚本从Ubuntu本地环境部署Spring Boot自定义容器映像应用到Azure容器应用程序。

首先

大家在享受Azure吗?这次我们想尝试一下创新的方式,挑战快速启动Azure容器应用。

Microsoft Azure 在云环境中提供了一种能够从网络浏览器中轻松上传容器应用程序的环境。借助这个环境,您无需键入命令即可轻松将容器应用程序部署到 Azure。本文为了学习目的,尝试说明了如何从 Ubuntu 上的 shell 脚本启动容器应用程序。请注意。

相关文章

让我们来与其他 Azure PaaS 服务进行比较!

 

开发环境。

    Windows 11 Home 22H2 を使用しています。
可以参考 macOS 来操作 WSL 上的 Ubuntu。
WSL (Microsoft Store 应用程序版) ※ 您可以从相关文章中查看安装方法
> wsl –version
WSL 版本:1.0.3.0
内核版本:5.15.79.1
WSLg 版本:1.0.47Ubuntu ※ 您可以从相关文章中查看安装方法
$ lsb_release -a
没有可用的 LSB 模块。
分发商 ID:Ubuntu
描述:Ubuntu 22.04.1 LTS
版本:22.04

Java JDK ※ 您可以从相关文章中查看安装方法
$ java -version
openjdk version “11.0.18” 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

Maven ※ 您可以从相关文章中查看安装方法
$ mvn -version
Apache Maven 3.6.3
Maven 主目录:/usr/share/maven
Java 版本:11.0.18,供应商:Ubuntu,运行时:/usr/lib/jvm/java-11-openjdk-amd64

Docker ※ 您可以从相关文章中查看安装方法
$ docker –version
Docker 版本 23.0.1,构建 a5ee5b1

Azure CLI ※ 您可以从相关文章中查看安装方法
$ az –version
azure-cli 2.45.0
core 2.45.0
telemetry 1.0.8

这篇文章主要介绍如何在Ubuntu的终端上进行操作。针对初学者学习在Vim中进行复制粘贴的方法,下面的文章将介绍详细步骤。欢迎大家尝试一下。

 

创建Spring Boot应用程序

您可以在这篇相关文章中查看步骤。

 

在此之前的工作中,已经创建了一个名为$USER/app-hello-spring-boot:latest的自定义容器映像的Web应用程序,存储在Docker Hub中。
这里的$USER嵌入变量指的是Ubuntu的shell变量USER。换句话说,如果在将自定义容器镜像推送到Docker Hub时指定的账户名与Ubuntu的用户名相同,那么处理镜像会变得更加简单。不过,这种方法仅适用于验证目的。

请转到项目文件夹。

跳转到项目文件夹。
※ 我们将~/tmp/hello-spring-boot设为项目文件夹。

$ cd ~/tmp/hello-spring-boot

打开容器应用

我要编写一个Shell脚本。

$ vim create_container_apps.sh

根据情况,请更改以下4个参数:

编号

参数
内容

1
resource_group_name=rg-hello
rg-hello
资源组的名称。

2
containerapp_env_name=cae-hello
cae-hello
容器应用环境的名称。

3
containerapp_name=ca-hello-spring-boot
ca-hello-spring-boot
容器应用的名称。

4
container_image_name=app-hello-spring-boot:latest
app-hello-spring-boot:latest
自定义容器镜像的名称。

文件内容

#!/bin/sh

# set variables.
location_name=japaneast
resource_group_name=rg-hello
containerapp_env_name=cae-hello
containerapp_name=ca-hello-spring-boot
container_image_name=app-hello-spring-boot:latest

# create a resource group.
az group create \
    --name $resource_group_name \
    --location $location_name

# create a containerapp env.
az containerapp env create \
    --resource-group $resource_group_name \
    --name $containerapp_env_name \
    --location $location_name

# create a containerapp.
az containerapp create \
    --resource-group $resource_group_name \
    --environment $containerapp_env_name \
    --name $containerapp_name \
    --image $USER/$container_image_name \
    --target-port 8080 \
    --ingress 'external' \
    --min-replicas 1

# get a containerapp fqdn.
fqdn=$(az containerapp show \
    --resource-group $resource_group_name \
    --name $containerapp_name \
    --query 'properties.configuration.ingress.fqdn' \
    --output tsv)

# get a containerapp data.
curl https://$fqdn/api/data -w '\n'

增加执行权限。

$ chmod +x create_container_apps.sh

登录 Azure。

$ az login

您可以在这篇相关文章中确认步骤。

 

执行Shell脚本。

$ ./create_container_apps.sh

部署完成后将显示以下内容。

{"message":"Hello World!"}
从执行shell脚本的命令到显示“Hello World!”为止,花费了4分28秒。

查看Azure门户

cap_1.png

刪除容器應用程式

我将创建一个Shell脚本。

$ vim delete_resource_group.sh

请将以下参数与上述创建的参数相配合。



参数
内容

1
resource_group_name=rg-hello
rg-hello
资源组的名称。

文件的内容。

#!/bin/sh

# set variables.
resource_group_name=rg-hello

# delete resource group
az group delete \
    --name $resource_group_name \
    --yes

给予执行权限。

$ chmod +x delete_resource_group.sh

我要执行 Shell 脚本。

$ ./delete_resource_group.sh

在删除期间将显示如下所示。

 / Running ..

总结

在Azure Container Apps(ACA)环境中,我们能够轻松地启动自定义容器镜像的Spring Boot Web应用程序。

在实际业务中,您可以手动将容器应用程序部署到容器应用。例如,您可以在Azure门户上手动进行设置,或者使用CI/CD流水线自动部署。但是,通过阅读此脚本,您可以理解部署容器应用到容器应用所需的步骤。此外,您还可以尝试进一步改进此脚本。

如何?您可以轻松在WSL Ubuntu上建立Azure云应用开发环境。请务必尝试。我们将继续介绍Azure开发环境等相关内容,请敬请期待。

推荐内容

 

广告
将在 10 秒后关闭
bannerAds