练习 - 入门
在本练习中,你将创建一个 Azure Static Web Apps 实例,其中包含自动生成并发布你的应用程序的 GitHub Action。
本模块使用 Azure 沙盒提供免费的临时 Azure 订阅,可供你用于完成练习。 继续之前,请确保已在本页顶部激活了沙盒。
提示
如果遇到节点依赖项问题,请确保 已安装 Node Version Manager ,并可以切换到早期版本。
创建存储库
接下来,使用 GitHub 模板存储库创建新存储库。 有一系列模板可用,其中每个模板都包含使用不同前端框架生成的起始应用。
转到模板存储库的 “从模板创建”页 。
- 如果收到 404 找不到页面错误,请登录到 GitHub,然后重试。
如果系统提示输入“所有者”,请选择你的一个 GitHub 帐户。
将存储库命名为 my-static-web-app-authn。
选择“从模板创建存储库”。
在本地克隆应用
你刚才在 GitHub 帐户中创建了一个名为“my-static-web-app-authn” 的 GitHub 存储库。 接下来,将在计算机上克隆该存储库,并在本地运行代码。
在计算机上打开一个终端。
首先,将 GitHub 存储库克隆到计算机。
git clone https://github.com/<YOUR_GITHUB_USERNAME>/my-static-web-app-authn
转到源代码的文件夹。
cd my-static-web-app-authn
在本地配置 CORS
发布到 Azure Static Web Apps 时,无需担心跨域资源共享 (CORS)。 Azure 静态 Web 应用会自动配置应用,使它可以使用反向代理与 Azure 上的 API 进行通信。 但在本地运行时,需要配置 CORS 以允许 Web 应用和 API 进行通信。
现在,指示 Azure Functions 允许 Web 应用在计算机上对 API 进行 HTTP 请求。
创建名为 api/local.settings.json 的文件。
将以下内容添加到该文件:
{ "Host": { "CORS": "http://localhost:4200" } }
{ "Host": { "CORS": "http://localhost:3000" } }
{ "Host": { "CORS": "http://localhost:5000" } }
{ "Host": { "CORS": "http://localhost:8080" } }
注意
local.settings.json 文件会在 .gitignore 文件中列出,可防止此文件发布到 GitHub。 这是因为你可以在此文件中存储机密,而你不希望在 GitHub 中存储该内容。 这便是为何在从模板创建存储库时,必须创建该文件。
运行 API
api
文件夹包含 Azure Functions 项目以及 Web 应用的 HTTP 终结点。 首先执行以下步骤,在本地运行 API:
注意
请务必安装 Azure Functions Core Tools ,以便在本地运行 Azure Functions。
在 Visual Studio Code 中,按 F1 打开命令面板。
输入并选择“终端: 创建新的集成终端”。
转到 api 文件夹:
cd api
在本地运行 Azure Functions 应用:
func start
运行 Web 应用
接下来,转到首选前端框架的文件夹,如下所示:
cd angular-app
cd react-app
cd svelte-app
cd vue-app
现在安装应用程序依赖项。
npm install
最后,运行前端客户端应用程序。
npm start
npm start
npm run dev
npm run serve
浏览到你的应用
可看到应用程序在本地运行。 每个前端应用程序在不同的端口上运行。
- 选择链接可浏览到你的应用程序。
浏览到
http://localhost:4200
。
浏览到
http://localhost:3000
。
浏览到
http://localhost:5000
。
浏览到
http://localhost:8080
。
应用应显示产品列表。
- 现在,通过在终端中按 Ctrl-C 停止正在运行的应用。
你生成了应用程序,现在它在浏览器中本地运行。
接下来,你会将应用程序发布到 Azure 静态 Web 应用。
创建静态 Web 应用
现在已创建了 GitHub 存储库,可以使用适用于 Visual Studio Code 的 Azure Static Web Apps 扩展创建 Static Web Apps 实例。
安装适用于 Visual Studio Code 的 Azure Static Web Apps 扩展
转到 Visual Studio 市场,并安装适用于 Visual Studio Code 的 Azure 静态 Web 应用 扩展。
在 Visual Studio Code 中的扩展选项卡加载后,选择“安装”。
安装完成后,请选择“重载”。
在 Visual Studio Code 中登录到 Azure
在 Visual Studio Code 中,选择“视图”“命令面板”并输入“Azure: 登录”来登录 Azure。
重要
使用创建沙盒时所用的帐户登录到 Azure。 沙盒提供了 Concierge 订阅的访问权限。
按照提示复制并粘贴 Web 浏览器中提供的代码,该代码会对 Visual Studio Code 会话进行身份验证。
选择订阅
打开 Visual Studio Code,选择“文件”>“打开”,在编辑器中打开克隆到计算机的存储库。
通过打开命令面板 F1,输入 ,并按 Enter,验证是否已将 Azure 订阅筛选为包含 Concierge 订阅
Azure: Select Subscriptions
。选择“Concierge 订阅”,然后按 Enter。
使用 Visual Studio Code 创建静态 Web 应用
打开 Visual Studio Code,选择“文件”>“打开”,在编辑器中打开克隆到计算机的存储库。
在 Visual Studio Code 中,选择活动栏中的 Azure 徽标以打开 Azure 扩展窗口。
注意
必须登录到 Azure 和 GitHub。 如果尚未从 Visual Studio Code 登录到 Azure 和 GitHub,该扩展将在创建过程中提示你登录到这两个站点。
将鼠标置于 Static Web Apps 标签上,然后选择 (加号)。
命令面板在编辑器顶部打开时,选择 “Concierge 订阅”,然后按 Enter。
输入 my-static-web-app-authn,然后按 Enter。
选择离你最近的区域,然后按 Enter。
选择相应的框架选项,然后按 Enter。
选择 angular-app 作为应用程序代码的位置,然后按 Enter。
输入 dist/angular-app 作为在应用中为生产环境生成文件的输出位置,然后按 Enter。
选择 react-app 作为应用程序代码的位置,然后按 Enter。
输入 build 作为在应用中为生产环境生成文件的输出位置,然后按 Enter。
选择 svelte-app 作为应用程序代码的位置,然后按 Enter。
输入 public 作为在应用中为生产环境生成文件的输出位置,然后按 Enter。
选择 vue-app 作为应用程序代码的位置,然后按 Enter。
输入 dist 作为在应用中为生产环境生成文件的输出位置,然后按 Enter。
注意
你的存储库与过去可能使用过的存储库稍有不同。 它在四个不同的文件夹中包含四个不同的应用。 每个文件夹都包含在不同 JavaScript 框架中创建的应用。 通常,你在存储库的根中有一个应用,并对应用路径位置指定 /
。 这是一个很好的示例,可说明为何 Azure 静态 Web 应用允许你首先配置位置 - 你可完全控制应用的生成方式。
创建应用后,Visual Studio Code 中将出现确认通知。
在部署过程中,Visual Studio Code 扩展会向你报告生成状态。
:::image type="content" source="../media/extension-waiting-for-deployment.png" alt-text="Screenshot showing the waiting for deployment button.":::
可以使用 GitHub Actions 展开“操作”菜单来查看部署进度。
部署完成后,可直接转至你的网站。
若要在浏览器中查看网站,请右键单击 Static Web Apps 扩展中的项目,然后选择“浏览站点”。
祝贺你! 你已将应用部署到 Azure Static Web Apps!
注意
如果看到显示应用尚未生成和部署的网页,请不要担心。 在一分钟后刷新浏览器。 创建 Azure 静态 Web 应用时,GitHub 操作会自动运行。 如果看到初始页面,则应用仍在进行部署。
从 GitHub 拉取更改
从 GitHub 拉取最新更改以关闭由 Azure Static Web Apps 创建的工作流文件:
按 F1 打开命令面板。
输入并选择“Git:拉取”,然后按 Enter 键。
后续步骤
接下来,你将学习如何将用户身份验证集成到应用中。