arrow_back

在 Cloud Run 上开发无服务器应用:实验室挑战赛

登录 加入
访问 700 多个实验和课程

在 Cloud Run 上开发无服务器应用:实验室挑战赛

实验 1 小时 universal_currency_alt 5 个积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP328

Google Cloud 自学实验的徽标

概览

在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从课程的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否已正确完成任务的反馈。

在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。

要想获得满分,您必须在该时间段内成功完成所有任务!

我们建议已报名参加在 Cloud Run 上开发无服务器应用课程的学员参加本实验室挑战赛。准备好接受挑战了吗?

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

挑战场景

Pet Theory 是一家兽医诊所,他们希望采用无服务器架构来对诊所的当前系统进行现代化改造。

在本实验室挑战赛中,作为开发团队的成员,您的任务是将特定的服务转换为无服务器框架。请务必遵循提供的详细说明,以成功完成此任务。

架构概览

在此项目中,Pet Theory 选择将其当前的单体式结算应用转换为无服务器模型。

在本实验中,您将负责执行此次架构升级,确保顺利过渡到无服务器设计。

架构图

开发团队将提供要在解决方案中部署的代码或映像。

开发最简可行产品 (MVP)

您需要为 Pet Theory 构建一个满足以下高规格要求的原型解决方案:

参考编号

完成标准

1

部署预演架构

2

部署生产架构

3

确保在生产架构中的组件之间实现安全访问

预配实验环境

在实验过程中,请务必预配实验环境,以便为资源部署提供支持。

  1. 以无痕模式在浏览器窗口中打开 Cloud Shell
  2. 为环境设置默认项目:
gcloud config set project \ $(gcloud projects list --format='value(PROJECT_ID)' \ --filter='qwiklabs-gcp')
  1. 为运行部署设置区域:
gcloud config set run/region {{{project_0.default_region | REGION}}}
  1. 设置 Cloud Run 平台类型:
gcloud config set run/platform managed
  1. 克隆包含 Pet Theory 代码的代码库:
git clone https://github.com/rosera/pet-theory.git && cd pet-theory/lab07 注意:您已被授予开发代码库的访问权限。请记下位置并使用资产来构建符合要求的解决方案。

任务 1. 启用公共服务

概览

  1. 为结算服务设置一个 Rest API。使用下表中的信息:

字段

结算映像

billing-staging-api:0.1

结算服务

身份验证

不进行身份验证

代码

pet-theory/lab07/unit-api-billing

架构

Pet Theory 实验室挑战赛架构图

  1. 使用可用代码,部署结算服务。

评估

为顺利完成此部分,您需要执行以下任务:

  • 使用 Cloud Build 构建映像。
  • 将 Cloud Run 服务部署为不作身份验证的服务。
  • 测试访问端点时的服务响应。
注意:系统可能需要一些时间才能检测到您所做的操作。请等待 30 秒后再重试。

点击检查我的进度,验证您是否完成了上述任务。 部署公共结算服务

任务 2. 部署前端服务

概览

  • 设置一项前端服务。使用下表中的信息:

字段

映像名称

frontend-staging:0.1

服务名称

身份验证

不进行身份验证

代码

pet-theory/lab07/staging-frontend-billing

架构

Pet Theory 实验室挑战赛架构图

评估

为顺利完成此部分,您需要执行以下任务:

  • 使用 Cloud Build 构建映像。
  • 将映像作为不要求身份验证的服务部署到 Cloud Run。
  • 在访问端点时,服务应该作出响应。

点击检查我的进度,验证您是否完成了上述任务。 部署前端服务

任务 3. 部署专用服务

概览

  • 开发团队更新了其应用,并希望将该应用部署到预演环境中:

字段

映像名称

billing-staging-api:0.2

服务名称

仓库

gcr.io

身份验证

进行身份验证

代码

pet-theory/lab07/staging-api-billing

架构

Pet Theory 实验室挑战赛架构图

评估:Cloud Run 部署

为顺利完成此部分,您需要执行以下任务:

  • 删除现有的结算服务。
  • 使用 Cloud Build 构建映像。
  • 将映像部署到 Cloud Run 并要求进行身份验证。
  • 将 SERVICE_URL 分配给环境变量。

获取结算服务的网址:

BILLING_URL=$(gcloud run services describe {{{project_0.startup_script.private_billing_service | Private billing service}}} \ --platform managed \ --region {{{project_0.default_region | REGION}}} \ --format "value(status.url)")
  • 在访问端点时,服务应该作出响应
curl -X get -H "Authorization: Bearer $(gcloud auth print-identity-token)" $BILLING_URL

点击检查我的进度,验证您是否完成了上述任务。 部署专用结算服务

任务 4. 创建结算服务账号

概览

  • 在准备将服务部署到生产环境时,您需要为结算服务创建一个服务账号:

字段

服务账号

显示名称

Billing Service Cloud Run

服务名称

billing-service

角色

不适用

架构

Pet Theory 实验室挑战赛架构图

评估:服务账号

为顺利完成此部分,您需要创建一个服务账号。

点击检查我的进度,验证您是否完成了上述任务。 创建结算服务账号

任务 5. 部署结算服务

概览

  • 将新的结算服务账号与结算服务相关联:

字段

映像名称

billing-prod-api:0.1

服务名称

仓库

gcr.io

身份验证

进行身份验证

代码

pet-theory/lab07/prod-api-billing

服务账号

架构

Pet Theory 实验室挑战赛架构图

评估:Cloud Run 部署

为顺利完成此部分,您需要执行以下任务:

  • 将映像部署到 Cloud Run。
  • 启用身份验证。
  • 启用服务账号。
  • 在访问端点时,服务应该作出响应。

获取结算服务的网址:

PROD_BILLING_URL=$(gcloud run services describe {{{project_0.startup_script.private_billing_service | Private billing service}}} \ --platform managed \ --region {{{project_0.default_region | REGION}}} \ --format "value(status.url)")

访问所部署的端点:

curl -X get -H "Authorization: Bearer \ $(gcloud auth print-identity-token)" \ $PROD_BILLING_URL

点击检查我的进度,验证您是否完成了上述任务。 部署结算服务

任务 6. 前端服务账号

概览

  • 为前端创建一个能够调用结算服务的新服务账号:

字段

服务账号

显示名称

Billing Service Cloud Run Invoker

服务名称

frontend-prod-service

角色

run.invoker

架构

Pet Theory 实验室挑战赛架构图

评估

为顺利完成此部分,您需要执行以下任务:

  • 创建服务账号。
  • 为前端服务申请服务账号。
  • 授予服务账号 run.invoker 权限。
  • 将账号与服务绑定。

点击检查我的进度,验证您是否完成了上述任务。 创建前端服务账号

任务 7. 重新部署前端服务

概览

  • 使用新服务账号并重新部署前端服务:

字段

映像名称

frontend-prod:0.1

服务名称

仓库

gcr.io

身份验证

不进行身份验证

代码

pet-theory/lab07/prod-frontend-billing

服务账号

架构

Pet Theory 实验室挑战赛架构图

评估:Cloud Run 部署

为顺利完成此部分,您需要执行以下任务:

  • 将映像部署到 Cloud Run。
  • 启用身份验证。
  • 启用服务账号。
  • 在访问端点时,服务应该作出响应。

点击检查我的进度,验证您是否完成了上述任务。 部署前端服务

  • 现在,访问生产前端服务以显示相应的界面。

此屏幕上的信息提取自使用上述服务账号的专用结算服务。

“Pet Theory:结算服务”页面

恭喜!

通过参加本实验室挑战赛,您证明了自己对 Cloud Run 和 Google Cloud 基础设施相关知识的掌握程度。您已成功为兽医诊所 Pet Theory 部署了无服务器构架,并将他们的单体式结算应用转换为无服务器模型。

“在 Cloud Run 上开发无服务器应用”技能徽章

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2024 年 3 月 22 日

本实验的最后测试时间:2023 年 11 月 28 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。