その8から続き
30. GCPのBigQueryにデータがインサートされるのが確認できたので、Node.jsサーバをGCPのCloud Runに構築したいと思います。
Cloud Runは、サーバーレスのコンテナ化されたマイクロサービスをデプロイしてスケールするためのフルマネージドコンピューティング環境です。
Google Cloudのブログより引用
まずは、コンテナ化するために、Dockerfileを作成します。
FROM node:12-slim
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install --only=production
COPY . ./
ENV PORT 8080
CMD ["npm", "start"]
31. このままDockerビルドすると余計なファイルもビルドされてしまうので、.gcloudignoreというファイルを作成します。
最初にすべてのファイルを*で無視してから、ビルドに必要なファイルを!をつけて書き出します。
# ignore all
*
# upload list
!.
!package.json
!package-lock.json
!index.js
!credential.json
!Dockerfile
32. ビルドする前にGCPのコンテナサービスである「Artifact Registry」にアクセスして、「Artifact Registry API」を有効化します。
下記コマンドでコンテナをビルドします。最後にSTATUSがSUCCESSと表示されればビルドが成功です。
$ gcloud builds submit --project [your_project_id] --tag gcr.io/[your_project_id]/obniz-temp
33. 次に、ビルドされたコンテナをCloud Runにデプロイします。[your_project_id]というところは、GCPのプロジェクトIDに置き換えてください。最後に、Cloud RunのサービスURL(Service URL)が表示されればデプロイは成功です。
$ gcloud run deploy --project [your_project_id] --image gcr.io/[your_project_id]/obniz-temp
Service name (obniz-temp):
Deploying container to Cloud Run service [obniz-temp] in project [your_project_id] region [asia-northeast1]
✓ Deploying... Done.
✓ Creating Revision...
✓ Routing traffic...
Done.
Service [obniz-temp] revision [obniz-temp-00006-deb] has been deployed and is serving 100 percent of traffic.
Service URL: https://obniz-temp-hogefugahogefuga-an.a.run.app
34. デプロイされたCloud RunのサービスURLにアクセスしてみます。
ブラウザの画面では、下記のように結果がJSONで表示されます。
{"status":"success","temprature":22.116999999999997}
35. 29を参考に、GCPのBigQueryにデータが挿入されているか確認します。
問題なくデータが挿入されていたら、これを定期的に実行させます。
その10に続く