0
0

More than 1 year has passed since last update.

Google Cloud FunctionsでFizzBuzzを作成する

Last updated at Posted at 2022-10-20

はじめに

近年FaaSが流行しています。
僕も試してみたいと考えていたため、今回FizzBuzz判定APIを作ってみようと思います。

完成品

環境構築

gcloud CLIを使用していますので、インストールしてください。

念のため、その他のバージョン環境。

OS:Windows 11
言語処理系:Python 3.10.5

Google Cloud SDK 400.0.0
bq 2.0.75
core 2022.08.26
gcloud-crc32c 1.0.0
gsutil 5.12

関数を作成する

まずFizzBuzz判定用の関数をサクッと書いちゃいましょう。

def CheckFizzBuzz(request):
    data = request.args.to_dict()
    try:
        x = int(data.get('n'))
        if x%15==0:
            return "FizzBuzz"
        elif x%3==0:
            return "Fizz"
        elif x%5==0:
            return "Buzz"
        else:
            return str(x)
    except:
        return "ERROR:n is not number"

request.args.to_dict()でhttpのクエリパラメータを取得できるようです。
注意として、数字のまま返り値にするとエラーを吐くのでそこだけお気を付けください。(動的言語やっているとこういううっかりミスが)

デプロイ

gcloud functions deploy check-fizz-buzz --gen2 --region=asia-northeast1 --runtime=python39 --entry-point=CheckFizzBuzz --trigger-http --allow-unauthenticated

デフォルトだと認証が必要になるため、不特定多数からアクセスできるようにしたい場合--allow-unauthenticatedをつけてデプロイします。
リポジトリだとMakefileでやっていますが、Google Cloud用のビルドランナーがあるのでそちらを使うべきだったかも…。
デプロイが完了すると、デプロイ先のURLが表示されます。

テスト

デプロイ先のURLに書き換え、クエリパラメータをつけて叩いてください。

>curl https://check-fizz-buzz-xxxxxxxxxx-an.a.run.app/CheckFizzBuzz?n=15
FizzBuzz

できましたね!!

終わり

Google Cloud Functionを試すことができました。

0
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
0
0