GCPのVMでAPIを作成し、外部に公開したかったので、その手順をまとめました。
APIはFastAPIを利用して作成します。
APIの作成方法は詳しく触れませんので他の記事を参照してください。
目次
- GCP上にVM(GCE)を構築し、APIを作成する。
- GCPのファイアーウォールの設定をする。
- 外部PCからAPIをコールする。
1. GCP上にVM(GCE)を構築し、APIを作成する。
- VMの作成
まず、GCP上にVMを作成します。
スペックを求めなければ無料で作成できます。
こちらを参照してください。
特別な設定などは必要ありませんが、外部IPを固定しておくと今後便利です。
pythonはインストールしておいてください。
- APIの作成
以下のコードを任意のディレクトリに作成し、実行してください。
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
async def root():
message = "Hello"
return message
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
ホストを0.0.0.0/0にし、port番号8000に穴をあけています。
「手順2. GCPのファイアーウォールの設定をする。」でここへの外部からのアクセス許可を設定します。
実行すると以下のようにターミナルに出力されます。
$ python main.py
INFO: Started server process [56297]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
2. GCPのファイアーウォールの設定をする。
GCPコンソール上で、左上のメニュー>VPC ネットワーク>ファイアウォール からファイアウォールルールを作成することができます。
以下のように設定します。
ここで、任意のアドレス(0.0.0.0/0)から8000番ポートへのアクセスを許可しています。
セキュリティを高めたい方はアドレスを絞ってください。
ここで作成したターゲットタグ(fastapi)をVMで設定します。
VMインスタンスの設定で、ネットワークタグを追加します。

3. 外部PCからAPIをコールする。
以上で準備が整いましたので、いよいよAPIをコールします。
ブラウザ上でhttp://[VMの外部IPアドレス]:8000と入力します。
"Hello"
と表示されれば完了です。
