代码演练:构建地理位置API并自动部署到云运行
#python #fastapi #googlecloud #walkthrough

介绍

本文介绍了我的新YouTube视频。在此视频中,我将带您完成基于IP地址的地理位置信息创建API的旅程。但是,使该项目更加令人兴奋的是,专注于使用Terraform的Cloud Development套件自动化部署过程,并将Bash脚本用于无服务器云本地基础结构,特别是Google Cloud的云运行。

在我们深入了解细节之前,我想让您知道该项目的代码是开源的,并且在随附的GitHub repository中可用。我强烈鼓励您探索代码并提供宝贵的反馈。您的建议和建议将有助于提高我的代码质量。

在此视频中,我的主要重点将是引导您浏览源代码,解释不同组件的结构以及展示其交互作用。如果您有兴趣学习如何在自己的Google Cloud项目中部署地理定位API,我建议您查看“部署地理位置API”。当前的视频更多是关于理解源代码以及不同零件如何结合在一起。

项目概况

让我们从项目的概述开始。

Geolocation-API项目包括五个不同的组成部分:

  1. FastAPI应用程序:FastAPI应用程序负责从MaxMind Geolite2数据库中处理Web请求并检索地理位置数据。除了Fastapi Python Web框架外,它还具有包括geoip2在内的一些依赖关系。该应用程序包括用于TrustedHostCORS处理的中间件组件。它还定义了健康检查和IP地理位置查找的端点。
  2. DockerfileDockerfile采用了多阶段构建方法。在第一阶段,它创建了geoipupdate程序要求的配置文件,并下载Geolite2 MaxMind数据库。在第二阶段,它使用Python Slim-Buster图像,安装依赖项并设置Python虚拟环境。在第三阶段也是最后一个阶段,它简单地将所有东西汇总在一起。
  3. Cloudbuild.yaml:此文件定义了Google Cloud Cloud构建服务的构建管道的步骤。它包括复制.env文件,运行测试,构建和推出Docker映像的步骤,并使用新的修订版更新云运行服务。
  4. CDKTF应用程序:CDKTF用于定义和提供我们API所需的云基础架构。我们的CDKTF应用程序有三个堆栈。启用需要Google Cloud API并创建一个存储我们的.env文件的base堆栈。 pre-cloudrun堆栈为云构建管道创建一个专用的服务帐户,创建文物注册表来存储Docker容器图像,为手动调用设置云构建触发器,并创建云调度程序作业以自动触发我们每周的图像构建。 cloudrun堆栈创建了一个专用的服务帐户,可与我们的云运行服务一起使用,然后使用我们使用Cloud Build构建的图像创建云运行服务,并配置为每个人都可以使用的服务。
  5. deploy.sh shell脚本:deploy.sh脚本通过安装所需的组件,例如Python所需的组件,用于管理虚拟环境的诗歌,CDKTF Python绑定和CDKTF-CLI NPM,然后运行我们的cdktf deploy命令来自动化云外壳环境的设置。部署云资源。

我希望这个概述使您对项目的结构和组件有很好的了解。在视频中,我将提供每件作品的更详细的演练,解释代码并突出基本概念。

确保观看视频直到结束。感谢您加入我的旅程。请不要犹豫,发表评论或直接与我联系。让我们开始吧!”