その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に続く