在GCP上构建Hasura的故事

引子

由于在GCP上构建Hasura并且希望以Cloud Run + Cloud SQL的配置顺利进行个人开发,但是我发现通过Auth Proxy连接的方法并不常见,因此将其作为备忘录留在这里。

操作程序

    1. 创建服务帐户(用于Cloud SQL Auth Proxy)

 

    1. 创建Cloud SQL实例(PostgreSQL)

 

    1. 将Docker镜像推送到Artifact Resitory

 

    在Cloud Run上启动Hasura

创建服务账号(用于Cloud SQL Auth Proxy)

スクリーンショット 2023-09-18 0.02.12.png

创建Cloud SQL实例(PostgresSQL)

我将构建用于Hasura连接的数据库。由于这是个人开发用途,因此我将采用最小配置。
▼ 配置
类型:PostgreSQL 15.2(默认)
机器配置:db-g1-small(1vCPU,1.7GB)
存储:SSD 10GB

将Docker镜像推送到Artifact存储库。

首先,在ArtifactRepository中创建一个存储库。
我通过控制台界面手动创建了一个存储库。

接下来可以直接在本地使用Hasura的Docker镜像

docker pull hasura/graphql-engine:latest

给它贴上标签

docker tag hasura/graphql-engine:latest \
us-central1-docker.pkg.dev/< ProjectID >/< RepositoryName >/< IMAGE >

在推送之前,我有些忘记了一个咒语。
记得好像是将认证通过到Artifact Registry的咒语…

gcloud auth configure-docker us-central1-docker.pkg.dev

将Artifact Registry推送

docker push \
us-central1-docker.pkg.dev/< ProjectID >/< RepositoryName >/< IMAGE >
スクリーンショット 2023-09-18 0.18.01.png

使用Cloud Run来启动Hasura

从Artifact Repository推送的镜像中创建版本。
▼ 构成
我真的只设置了最小配置!

スクリーンショット 2023-09-18 0.21.18.png

環境更改:

HASURA_GRAPHQL_ADMIN_SECRET:訪問Hasura控制台時的密碼
HASURA_GRAPHQL_ENABLE_CONSOLE:設置為TRUE以訪問Hasura控制台
HASURA_GRAPHQL_SERVER_PORT:啟動的端口
HASURA_GRAPHQL_DATABASE_URL:數據庫的URL(由於通過認證代理存在一些特點,詳情請參考以下記錄)

重点有三个!

将下面的话用中文进行本地化的改写,只需要一种选项:
在环境变量中设置用于Cloud SQL Auth Proxy的变量名为HASURA_GRAPHQL_DATABASE_URL,并以“postgres://:@/?host=/cloudsql/”的格式进行设置。

在云SQL连接中选择创建的数据库。说实话,如果不选择这个选项,我不知道是否能连接上?当我将鼠标悬停在图标上时,提示说会自动化代理,所以没有选择的话可能无法连接。

从安全选项卡中选择最初创建的服务帐户,否则代理可能无法正常工作,因此需要设置创建的服务帐户。虽然可能可以将”Cloud SQL Client”添加到默认的服务帐户中,但由于希望权限最小化,因此选择了最初创建的服务帐户。

当启动修订版本后,通过发布的Cloud Run URL 进入到 Hasura 控制台页面!
如果可以使用环境变量设置的 HASURA_GRAPHQL_ADMIN_SECRET 登录成功,则表示成功 ?

结束了

如果只是在Cloud Run上运行原封不动的镜像,那么构建Hasura非常容易!由于Hasura可以进行代码管理,所以在使用产品时,代码管理似乎比在Hasura控制台上点点点更好!(虽然我完全不知道如何做到…)

只需要一个选择的话,以下是对原文的汉语释义:
除此之外,只需要通过使用SecretManager之类的工具来管理『HASURA_GRAPHQL_ADMIN_SECRET』和『HASURA_GRAPHQL_DATABASE_URL』,并在进行区域引用时进行相应的配置,似乎就可以完成全部操作了!

感谢您阅读到最后 ?‍♂️

广告
将在 10 秒后关闭
bannerAds