如何将 .NET Aspire 应用程序部署到 Azure Container App

news2024/11/25 15:19:34

作者:Jiachen Jiang
排版:Alan Wang

最近发布的用于构建云原生应用程序的 .NET Aspire 与 Azure Container App(ACA)非常匹配。.NET Aspire 旨在轻松管理由一系列相互依赖的微服务组成的应用程序。Azure Container App 专为微服务量身定制。它基于云原生技术构建,这意味着 .NET Aspire 可以无缝集成到其中 - 开箱即用!

最重要的是,.NET Aspire 堆栈通过 Azure Developer CLI (AZD)为 ACA 提供定制的部署体验,让您可以使用单个命令为 Aspire 解决方案创建、配置和部署 Azure 资源。

在这篇博文中,我们讨论了在 ACA 中托管应用程序与非托管集群相比的优势。我们还将通过示例代码向您展示如何轻松上手。

为什么选择 Azure Container App?

Azure Container App(ACA)是一个用于运行容器优先应用程序和微服务的平台。它由 Kubernetes 提供支持,但对于普通开发人员来说使用和管理要简单得多。使用 ACA 的团队可以专注于构建应用程序并投入生产,而不必只是为了入门就必须去学习复杂的集群管理。

如果你想要有灵活性并且最大限度地降低成本,这也是一个不错的选择。作为一种无服务器环境,ACA 既提供可扩展到零的按使用付费的消费托管,也提供具有固定价格和可靠性的专用计算托管。凭借对 Dapr 和 KEDA 等开源技术的全面支持,ACA 允许开发人员从更广泛的微服务生态系统中获取最佳实践和工具——所有这些都来自一个平台!

对于希望以最小的开销和复杂性在云端构建应用程序的开发人员来说,这些功能使 ACA 成为一个很好的选择。如果你感兴趣,请继续阅读——我们将通过一些示例代码让您亲自了解将 .NET Aspire 解决方案部署到 ACA 是多么快速和容易。

.NET 8、.NET Aspire 和 AZD 入门

如果您尚未开始使用 .NET Aspire 和 .NET 8,请参阅 .NET Aspire 文档以了解开始开发所需的一切。这将包括安装 Visual Studio(或 Visual Studio Code)、.NET 8、.NET Aspire 工作负载和 Docker Desktop。如果您愿意,您也可以使用 .NET CLI。

创建您的 .NET Aspire 项目

如果您尚未创建 .NET Aspire 项目,请不要担心,因为入门项目是一个很好的起点。在 Visual Studio 中创建一个新的 .NET Aspire Starter Application,并确保选择“Use Redis for caching”,然后就一切就绪。
在这里插入图片描述
您还可以使用以下命令直接从 .NET CLI 创建它:

dotnet new aspire-starter --use-redis-cache --output AspireSample

设置 Azure Developer CLI

Azure Developer CLI(AZD)是一种新的开源工具,可加速 Azure 部署。AZD 不仅允许您使用单个命令为 Aspire 解决方案创建、配置和部署 Azure 资源,它还与 .NET 工具广泛集成,并且可以从 Visual Studio Code 和 Visual Studio 进行访问。

Visual Studio 的发布团队正在大力投资 AZD 的一些功能。我们已经支持基于 AZD 的发布,因此,如果您还没有尝试过 AZD,现在是受益于 AZD 中可重复、可组合的部署功能的好时机。正如您将在本文后面看到的,Aspire 和 AZD 是为彼此构建的,它们共同创建了一种将 .NET Cloud Native 应用程序部署到 ACA 的自动方式,而无需编写任何基础设施代码。

AZD 建立在 Azure CLI 和 Bicep 的基础上。与 ACA 简化 Kubernetes 的方式相同,AZD 通过为 Aspire 解决方案提供智能默认设置来简化部署。如果需要,您可以进一步自定义 AZD 拉入的 Bicep 模板。

您可以使用此文档安装 AZD。

为 ACA 初始化您的项目

现在,让我们为 .NET Aspire 应用程序创建一个 AZD 环境。在同一环境中部署多个应用程序可以让它们相互通信。

请在 /AspireSample/AspireSample.AppHost 中运行以下命令:

azd init

在这里插入图片描述
几秒钟内,AZD 将检测到这是一个 .NET Aspire 应用程序,并建议部署到 ACA。确认并继续。
在这里插入图片描述
AZD 现在显示了 .NET Aspire 解决方案的每个组件。您现在可以选择要公开部署的组件,这意味着它们将对所有互联网流量开放 HTTP 入口。在此入门应用程序中,有一个前端和一个 API。我们希望 Web 前端是公开的,而 API 应该仅对 ACA 环境是私有的。

若要进行该设置,请选择 webfrontend。

最后,我们将设置环境名称 - 例如,dev、prod 和 test。提供环境名称并继续。

然后 AZD 完成应用程序的初始化,并生成一个 markdown 文件,该文件提供有关 CLI 在底层执行的操作的详细信息。

将您的项目部署到 ACA

AZD 允许您在单个步骤中配置和部署解决方案。不过,首先我们需要使用 Azure AD 进行身份验证,以便可以调用 Azure 资源管理 API。

为此,请运行以下命令启动浏览器以验证命令行会话:

azd auth login

现在,我们将配置和部署我们的应用程序:

azd up

然后,系统会要求您提供要部署到的订阅和位置。

注意:如果在运行 azd up 后出现无法调用部署操作的错误,请确保您在注册表中拥有管理员用户。 打开 Azure Portal 并导航到您部署到的订阅。输入容器注册表/设置/访问密钥,然后选中管理员用户复选框。这将生成一个用户名和两个密码,供您访问 ACR 资源。系统将提示您输入用户名和密码。输入 Azure Portal 中显示的值。有关详细信息,请参阅启用管理员用户。

AZD 将生成指向 Web 前端和 API 服务应用程序的链接。终端输出的最后一行包含指向 Azure Portal 页面的链接,该页面显示所有已部署的资源。
在这里插入图片描述
Azure Portal 提供了大量资源来帮助您扩展和了解您的应用程序。不仅有管理成本、性能和安全性的工具,您还可以将应用程序设置为根据传入需求进行扩展。
在这里插入图片描述
就是这样!您可以阅读本文档详细了解 AZD 在配置和部署应用程序方面所做的工作。

下一步

恭喜,您现在可以将 Aspire 应用程序部署到 ACA。现在,您应该对将 Aspire 应用程序部署到 ACA 的优势有了更好的了解。感谢您的阅读!

想了解更多?您可以:

  • 查看 Azure 容器应用文档。

  • 从 Azure 容器应用定价页面了解有关定价详细信息的更多信息。

  • 随时通过我们的 GitHub microsoft/azure-container-apps 存储库直接与我们联系。

  • 在 X 和 Discord 上与 Azure 容器应用团队联系。

注意:此博客最初发布到 Azure 上的应用博客,其中包含完整的演示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1463371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-时间接口-005

学习重点: 1.函数接口 2.【ls-l】命令的实现1【time】 1.1函数原型 【time_t time(time_t *tloc);】1.2函数功能 返回1970-1-1到现在的秒数(格林威治时间)1.3函数参数 1.3.1【tloc】 存放秒数空间首地址 存放的秒数:如果【t…

MySQL 窗口函数温故知新

本文用于复习数据库窗口函数,希望能够温故知新,也希望读到这篇文章的有所收获。 本文以:MySQL为例 参考文档: https://www.begtut.com/mysql/mysql-window-functions.html 使用的样例数据:https://www.begtut.com/m…

提高效率、降低成本:外贸企业必备好用ERP软件盘点

好用的外贸ERP软件有哪些?本期为您盘点的外贸ERP软件有:Zoho Books,孚盟M8,富通天下,睿贝软件。 外贸ERP系统是什么 企业资源规划(ERP)系统是一种先进的管理软件,尤其是在外贸和国际…

如何使用Docker部署开源Leanote蚂蚁笔记并发布个人博客至公网

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装…

通过eeprom验证FPGA实现的单字节/页读写IIC接口时序

1、概括 前文设计基于FPGA的IIC接口模块,本文将使用eeprom来验证该模块的设计。为了便于查看读写波形,采用两个按键来控制对eeprom数据的读写,当按键0按下后,FPGA向eeprom的前64个存储地址写入地址对应的数据,当按键1按…

文件上传漏洞--Upload-labs--Pass20--数组绕过

一、漏洞原理 漏洞来源:count()函数漏洞。 现自定义一个数组 arr[],定义arr[0]1,arr[3]2, 此时count(arr)的值为2,则arr[count[arr]]即为arr[2],但是arr[2]未定义,即为一个空值,若使用count()函数的本意是…

大数据计算技术秘史(上篇)

在之前的文章《2024 年,一个大数据从业者决定……》《存储技术背后的那些事儿》中,我们粗略地回顾了大数据领域的存储技术。在解决了「数据怎么存」之后,下一步就是解决「数据怎么用」的问题。 其实在大数据技术兴起之前,对于用户…

【TCP/IP】组播

一、组播介绍 组播(Multicast)是网络技术中数据传输的一种方法,它允许将数据包同时发送给一组指定的目标,而不是单个的目标(单播 Unicast)或所有可能的目标(广播 Broadcast)。组播传…

Python的自定义函数

Python的自定义函数 自定义函数的作用匿名函数语法示例 自定义函数语法示例 自定义函数的作用 定制化需求降低代码重复编写 匿名函数 匿名函数,可以用lambda关键字定义。通过lambda构造的函数可以没有名称,即在自定义匿名函数时,所有代码可…

【智能家居】7、主程序编写+实现语音、网络和串口功能

需要毕业论文私信有偿获取 截止目前mainPro.c代码 #include <stdio.h> #include <string.h>#include "controlDevices.h" #include "inputCmd.h"struct Devices *findDevicesName(char *name,struct Devices *phead){struct Devices *tmp=ph…

得物面试:Kafka消息0丢失,如何实现?

得物面试&#xff1a;Kafka消息0丢失&#xff0c;如何实现&#xff1f; 尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面…

更改WordPress作者存档链接author和Slug插件Edit Author Slug

WordPress默认所有用户的存档永久链接都是/author/username/&#xff0c;不管是管理员还是订阅者或贡献者或作者或编辑。如果你想要自定义用户存档链接&#xff0c;比如根据角色不同使用不一样的author&#xff0c;或者自定义作者链接中的用户名Slug&#xff0c;那么建议考虑使…

Win32 获取EXE/DLL文件版本信息

CFileVersion.h #pragma once#include <windows.h> #include <string> #include <tchar.h>#ifdef _UNICODE using _tstring std::wstring; #else using _tstring std::string; #endif// 版本号辅助类 class CVersionNumber { public:// 无参构造CVersionN…

uniapp实现全局悬浮框

uniapp实现全局悬浮框(按钮,页面,图片自行设置) 可拖动 话不多说直接上干货 1,在components新建组件(省去了每个页面都要引用组件的麻烦) 2,实现代码 <template><view class"call-plate" :style"top: top px;left: left px;" touchmove&quo…

探索Redis是否为单线程的奥秘(文末送书)

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. Redis中的多线程二. I/O多线程三. Redis中的多进程四. 结论五. 书籍推荐5.1 书…

OpenLayers水平镜像和垂直镜像

目录 1.前言2.概念介绍2.1 旋转2.2 水平镜像2.3 垂直镜像 3.要素的镜像3.1 镜像轴始终是水平的或者垂直的3.2 镜像轴是任意角度 4.图片的镜像5.总结 1.前言 最近项目中用到了要素和图片的水平镜像和垂直镜像功能。这些功能说难不难&#xff0c;说简单也不简单&#xff0c;就是稍…

【SQL注入】靶场SQLI DUMB SERIES-24通过二次注入重置用户密码

先使用已知信息admin/admin登录进去查下题&#xff0c;发现可以修改密码 猜测可能存在的SQL语句&#xff1a;UPDATE user SET password新密码 WHERE user用户名 and password旧密码 假设我们知道有个admin用户&#xff0c;但是不知道其密码&#xff0c;如何可以将其密码重置&…

[AIGC] 使用Curl进行网络请求的常见用法

使用Curl进行网络请求的常见用法 Curl是一个无比强大的工具&#xff0c;它可以用来获取和发送数据&#xff0c;支持众多的协议&#xff0c;包括HTTP、HTTPS、FTP、FTPS、SFTP和更多。它还支持HTTP POST&#xff0c;HTTP PUT&#xff0c;HTTPS证书&#xff0c;HTTP基础验证等。…

【2024软件测试面试必会技能】Postman(1): postman的介绍和安装

Postman的介绍 Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。 它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..)&#xff0c;附带任何数量的参数 headers。 postman是一款支持http协议的接口调试…

流动人员人事档案主要有哪些作用

流动人员人事档案是指记录企事业单位与个人之间的雇佣关系的文件。在企事业单位中&#xff0c;流动人员是指临时聘用的员工、实习生、临时工等&#xff0c;他们的雇佣关系相对不稳定&#xff0c;因此需要建立相应的人事档案来管理和记录他们的基本信息、工作经历、劳动合同等重…