前言
Serverless 架构即云原生应用的设计方式,通过使架构变得更为简单、效率更高,从而降低开发、运维以及成本费用。随着云计算的快速发展,Serverless 架构变得越来越流行。而 Deno 作为新兴的 JavaScript 运行时环境,也能够无缝地和 Serverless 架构集成在一起。
本文将介绍如何在 Deno 中使用 Serverless 部署应用,并提供详细的学习和指导意义。同时,我们将提供一个完整的示例代码来帮助您更好地理解和实践。
环境准备
在开始之前,我们需要准备好以下环境:
- Deno 运行时环境
- VSCode 编辑器
- Azure 账号
请确保您已经完成了上述环境的准备。
什么是 Serverless?
Serverless 是一种全新的云计算架构,它使应用程序的开发人员能够构建和运行应用程序,而无需管理基础设施。这样就可以将精力集中在编写高质量代码上,而不是花费大量时间来处理底层基础结构。
在传统的架构中,应用程序需要先构建和部署到服务器,然后才能开始运行,而 Serverless 架构可以随时调用和处理代码,而不是一直保留资源。这样可以助力您的应用程序更快地响应和更高效地运行,同时降低成本并提供简单易用的弹性伸缩。
在 Deno 中使用 Serverless
在 Deno 中使用 Serverless 架构可以让您更加简单地构建和部署应用程序,而无需自己设置和配置服务器。下面我们将介绍如何基于 Serverless 架构在 Deno 中构建和部署一个简单的 Web 应用程序。
1. 安装 Azure Functions Core Tools
为了启动本地开发服务器,我们需要先安装 Azure Functions Core Tools。您可以使用 npm 进行安装,打开终端并运行以下命令:
npm install -g azure-functions-core-tools
2. 创建项目
使用 VSCode 编辑器,创建一个空文件夹并打开它。然后,创建一个名为 index.ts
的文件,其中包含以下简单的代码:
export default (context: any, req: any) => { context.res = { body: "Hello World", }; };
在空文件夹内右键单击,选择 “Open in Terminal” 并在终端输入以下命令以创建一个新的 Azure Functions 应用程序:
func init --worker-runtime deno --language typescript
3. 创建 HTTP 触发器
运行以下命令以创建 HTTP 触发器:
func new --template "HTTP trigger" --name "hello-world"
这会在项目中创建一个名为 ‘hello-world.ts’ 的新文件。将其内容替换为以下代码:
-- -------------------- ---- ------- ------ - -------------- -------- ----------- - ---- ------------------- ----- ------------ ------------- - ----- -------- - -------- -------- ---- ----------- -- ------------- - ----------------- ------- -------- --------- - ----------- ----------- - - -- ------- ---- -- -------- -- --- -- ----- ------ ------- -- -- ------ ------- ------------
按“F5”启动调试会话。打开浏览器并输入以下网址:http://localhost:7071/api/hello-world
您应该看到 “Hello World” 作为响应输出。
4. 部署至 Azure
现在我们已经成功地本地构建和测试了应用程序,让我们将其部署至 Azure 上。要做到这一点,我们需要创建一个 Azure 资源组(Resource Group)和一个 Azure Functions 应用服务(Function App),然后将本地代码部署到该服务中。
运行以下命令以创建一个名为 “deno-functions” 的资源组:
az group create --name deno-functions --location centralus
运行以下命令以创建新的 Azure Functions 应用:
az functionapp create --resource-group deno-functions --consumption-plan-location centralus --name <APP_NAME> --runtime node --functions-version 3 --storage-account <STORAGE_ACCOUNT_NAME> --runtime-version 3
然后,运行以下命令进行权限(Role)开通:
az ad signed-in-user show --query objectId az functionapp identity assign --resource-group deno-functions --name <APP_NAME> --role owner --scope /subscriptions/{SUBSCRIPTION_ID}/resourcegroups/deno-functions
其中,{SUBSCRIPTION_ID}
是您 Azure 订阅中的订阅 ID,<APP_NAME>
是您将要设置的应用程序名称,而 <STORAGE_ACCOUNT_NAME>
是存储帐户的名称。
接下来,我们需要将本地应用程序部署到 Azure Functions 应用服务中。运行以下命令以创建一个新的配置文件:
func azure functionapp publish <APP_NAME> --build remote
这将部署您的应用程序至 Azure Functions 应用服务中。完成后,您可以在 Azure 门户中查看已部署的应用程序。
5. 验证部署
打开 Azure 门户并进入您的应用服务。单击左侧菜单中的 “Functions”,然后再单击您的应用程序名称以查看已部署的函数。找到名为 “hello-world” 的函数并单击它。
您应该看到一个类似于 “URL: http://<app_name>.azurewebsites.net/api/hello-world” 的网址。在浏览器中输入这个网址,并应该能够看到 “Hello World” 输出,这就说明您已经成功地将 Deno 应用程序部署至 Azure Functions 应用服务中了!
结论
本文介绍了如何在 Deno 中使用 Serverless 架构部署应用程序。我们使用 Azure Functions 作为示例,演示了如何使用 Azure Functions Core Tools 进行本地开发、构建和部署至 Azure Functions 应用服务中。这种架构可以帮助您更简单地构建和部署应用程序,消除了服务器配置和管理的需要,并提供了更加简便的弹性伸缩和自动化。现在你可以动手试试了,看看它能为您的应用程序带来哪些好处!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672ec817eedcc8a97c8ac88a