本教程适合初步接触云端应用构建的新手,例如 工程师和 Web 开发者,他们希望在应用于 Cloud de Confiance by S3NS的过程中了解重要的应用开发概念。
目标
- 了解基本的 Cloud de Confiance 工具,例如Cloud de Confiance 控制台和
gcloud。 - 将应用部署到 Cloud Run。
- 使用 Firestore 保留数据。
- 在 Cloud Storage 中存储上传的文件。
- 使用 Google Cloud Observability 监控应用。
费用
在本文档中,您将使用的以下收费组件: Cloud de Confiance by S3NS
本文档中的说明旨在将您的资源使用量保持在 的 Cloud de Confiance's 始终免费 层级的限制范围内。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
如需在原生模式下创建 Firestore 数据库,请完成以下步骤:
-
在 Cloud de Confiance 控制台中,前往 Firestore 创建数据库 页面。
- 从选择一种 Cloud Firestore 模式 屏幕中,点击选择原生模式 。
- 选择 Firestore 数据库的 位置。此位置设置是您的 默认 Cloud de Confiance 资源位置,用于您的 Cloud de Confiance 项目 。 此位置将用于项目中需要设置位置的服务,特别是默认的 Cloud Storage 存储桶和您的 Cloud Run 应用。
- 点击创建数据库 。
-
在 Cloud de Confiance 控制台中,前往 Firestore 创建数据库 页面。
-
启用 Cloud Run API、Cloud Storage JSON API、Cloud Logging API 和 Error Reporting API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予 角色。 -
克隆示例代码库并在 Cloud Shell 中打开示例应用:
前往 Cloud Shell利用 Cloud Shell,您可以直接在浏览器中通过命令行访问 Cloud de Confiance 资源。
- 在克隆代码库的提示中,点击确认 。
-
在 Cloud Shell 中,配置
gcloud工具以使用 新 Cloud de Confiance 项目:# Configure gcloud for your project gcloud config set project PROJECT_ID
将 PROJECT_ID 替换为您使用 Cloud de Confiance 控制台创建的 Cloud de Confiance 项目 ID。
Google Cloud CLI 是您从命令行与 Cloud de Confiance 资源进行交互的主要方式。在本教程中,您将使用
gcloud工具来部署和监控 应用。
运行应用
-
运行应用:
将GOOGLE_CLOUD_PROJECT=PROJECT_ID dotnet run
PROJECT_ID替换为您 Cloud de Confiance 创建的项目 ID。 - 在 Cloud Shell 中,点击网页预览 , 然后选择通过 8080 端口预览。此时浏览器会打开一个新窗口,显示出您运行中的应用。
将应用部署到 Cloud Run
Cloud de Confiance 提供了 多种运行代码的方案。在此 示例中,您要使用 Cloud Run 将可伸缩 应用部署到 Cloud de Confiance。通过零服务器管理,Cloud Run 让您专注于编写代码。此外,Cloud Run 会自动扩缩以应对突发的流量高峰。
Dockerfile 告诉 Cloud Run 如何运行您的应用:Dockerfiles 可以 更丰富,但是此配置适用于许多应用。
Cloud Run 通过设置 PORT 环境变量来告诉您的应用要监听哪个端口。Bookshelf 的 Program.cs
包含用于
观察 PORT 变量并在该端口上监听的代码:
在终端窗口中,使用 gcloud CLI 将应用部署到 Cloud Run:
-
在本地构建应用。
dotnet publish -c Release
-
使用 Cloud Build 来构建 Docker 容器并发布到 Container Registry。
gcloud builds submit --tag gcr.io/PROJECT_ID/bookshelf \ bin/Release/netcoreapp2.1/publish
-
使用 Cloud Run 运行容器。
现在可以在gcloud run deploy bookshelf --region us-central1 --platform managed \ --image gcr.io/PROJECT_ID/bookshelf --allow-unauthenticated
gcloud run输出中显示的网址上查看您的应用:Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving traffic at https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app
-
将网址复制到您的网络浏览器以查看该应用。
如需详细了解如何部署到 Cloud Run,请参阅 Cloud Run 文档。
使用 Firestore 保留数据
您不能在 Cloud Run 实例中存储信息,因为实例重启时信息会丢失,当新实例创建时该信息已不再存在。所以,您需要一个所有实例都能在其中读写的数据库。
Cloud de Confiance 提供了 多种存储数据的方案。在此示例中,您将使用 Firestore 存储每本图书的数据。 Firestore 是一种全代管式无服务器 NoSQL 文档数据库,可用于存储和查询数据。Firestore 能够根据您的应用需求自动扩缩,并在不使用时缩减到零个实例。现在添加第一本图书。
-
如需为部署的应用创建图书,请点击添加图书。
- 在书名字段中,输入
Moby Dick。 - 在作者字段中,输入
Herman Melville。 -
点击保存。现在您的 Bookshelf 应用有了一个条目。
-
在 Cloud de Confiance 控制台中,前往 Cloud Firestore。 前往 Cloud Firestore
现在数据出现在 Firestore 中。Bookshelf 应用将每本图书存储为具有唯一 ID 的 Firestore 文档,这些文档都存储在一个 Firestore 集合中。在本教程中,该集合称为 books。
Firestore 使用 Firestore 客户端库存储图书。 下面是一个提取 Firestore 文档的示例:
如需详细了解如何使用 Firestore,请参阅 向 Firestore 添加数据。
在 Cloud Storage 中存储上传的文件
现在您已经添加了一本图书,接下来该添加图书封面图片。您不能在实例中存储文件,数据库也不适合图片文件。这时,您就得用上 Cloud Storage 了。
Cloud Storage 是主要的 Blob 存储库 Cloud de Confiance。您可以使用 Cloud Storage 来 托管要在中共享的应用资源 Cloud de Confiance。如需使用 Cloud Storage,您需要创建一个 Cloud Storage 存储桶, 这是一个保存数据的基本容器。
- 在 Cloud de Confiance 控制台中,前往 Cloud Storage 浏览器 页面。
- 点击创建存储桶 。
- 在创建存储桶对话框中输入存储桶的名称:将
Cloud de Confiance 项目 ID 附加到字符串
_bucket前面,这样名称就显示为YOUR_PROJECT_ID_bucket。此名称须遵守 存储桶名称要求。其他所有字段可以保留默认值。 - 点击创建。
- 创建存储分区后,必须将对象设为可公开访问,以供用户查看。如需将对象设为可公开访问,请参阅公开数据。
-
点击修改图书,然后选择一张图片上传为图书的封面。例如,可以使用图中所示的这张属于公共领域的图片:
-
点击保存。您将被重定向至
首页,其中有您的 Bookshelf 应用的条目。
Bookshelf 应用会使用 Cloud Storage 客户端库将上传的文件发送到 Cloud Storage。
如需详细了解如何使用 Cloud Storage,请参阅 Cloud Storage 简介。
使用 Google Cloud Observability 监控应用
您已经部署了应用,创建并修改了 books 集合。如需为用户监控这些事件,可以使用应用性能管理。
使用 Cloud Logging 监控日志
-
在 Cloud de Confiance中,前往 Logs Explorer
转到 Logs Explorer您可以在其中实时监控应用。如果您的应用出现问题,应该首先查看这里。
- 在资源下拉列表中,选择 Cloud Run Revision, bookshelf。
使用 Error Reporting 监控错误
-
在 Cloud de Confiance 控制台中,前往 Error Reporting 页面。
前往 Error Reporting 页面
Error Reporting 可突出显示应用中的错误和异常, 您还可以设置相关的提醒。 -
在浏览器中,转到应用中的
/Home/Throw网址。
例如,如果您的应用托管在 https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app 中, 则转到 https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app/Home/Throw。此操作会生成一个新的测试异常并将其发送至 Google Cloud Observability。
-
在 Cloud de Confiance 控制台中,返回到 Error Reporting 页面,很快就可以看到这个 新错误。点击自动重新加载 ,这样就无需手动刷新页面。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
- 在 Cloud de Confiance 控制台中,前往 管理资源 页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击 关闭以删除项目。