3
0

はじめに

この記事はむちゃぶりにも応える開発技術があるって?!〜3つのテーマで記事を募集〜 by V-CUBEのカレンダー の参加記事です。

Serverless Cloud FunctionはAWSでいうLambdaのようなサービスです。
AWSのLambdaの代替となるツールとして、Tencent CloudにはServerless Cloud Functionがあると知ったので、試してみることにしました。
今回はHTTPリクエストをトリガーとしてレスポンスを行うJSのアプリケーションをデプロイしてみました。

ドキュメントもありますが、補足が欲しいところもあったので、記事にしています。

デプロイにはServerless Frameworkも使うことができます。
今回はまずは検証をしたいため、とにかく手動でデプロイして使ってみます。

Serverless Frameworkを使う場合はこちらが参考になります。

料金について

無料枠が存在するので、お試しであれば無料でできます。

Free Tier | Tencent Cloud

Calculatorもあるので、実際に稼働させる際にはこちらで試算をします。

コンソールで設定をしていく

設定に関して参考にしたDocumentはこちらです。

Serverless Cloud Functionを有効化する

Serverless Cloud Functionのコンソールを開きます。
初めての場合は有効化を求められるので許可をします。

早速リージョンを選択して Create していきます。

image.png

ちなみに2023年12月現在、リージョンは以下のものが選択できます。

image.png

フレームワーク等を選択して手軽に作成できるTemplatも用意されているのですが、使おうとしたサンプルは、runtimeがNodejs.12.16と古かったので「Create from scratch」を選択しました。

image.png

Serverless Cloud Functionの起動トリガーは以下の2つから選択できますが、今回は「HTTP-triggerd Function」を選択します。

アプリケーションの設定

アプリケーションのデプロイ(アップロード)前にやることが2つあります。

  1. scf_bootstrap というファイルを作成する
  2. listenするポートを 0.0.0.0:9000 に変更する

Node.jsのruntimeは最新が18.15だったので、これを選択しています。 (v20は選択肢になかった...)

image.png

scf_bootstrapには以下のように記述します。

#!/bin/bash
SERVERLESS=1 /var/lang/node18/bin/node ./dist/main.js

今回デプロイしたアプリケーションはNestJSなので、ビルド後、アップロードします。

npm run build

ファイルのアップロードをする

以下のように設定をします。

image.png

完了前に、以下のようなエラーが表示されていたので、 ApiGateWay_QCSRole のパーミッションを許可します。
こういう細かいところまで、許可が必要なのですが、初めのうちは「知らないうちに使っていた」とならないのでいいなと思いました。

Service role error. Please assign ApiGateWay_QCSRole the permission to invoke the cloud function.

image.png

最後にfunction URLを公開すればAPIが公開できます。
API Gatewayの設定をせずにここまでできるのは便利です。

image.png

まとめ

  • APIの公開までにAPI Gatewayの設定を意識せずにできるのは便利でした
  • Node.jsのランタイムや、Templateが古いのは不便でした

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0