💨

GCEで簡単なWebサーバーを動かしたい時のStartup Scriptメモ

2024/01/04に公開

はじめに

GCEで色々試してる時に、パッとWebサーバーとして動かしたいな〜という時に使うStartup Scriptの備忘録。
2023年12月末段階では動作確認済み。

内容

以下のスクリプトを、GCEのstartup scriptに仕込めばOK

#!/bin/bash
set -ex
# PythonのWebサーバー用のスクリプトの内容
python_script_content=$(cat <<'EOF'
from http.server import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        # レスポンスヘッダの設定
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        # レスポンスの内容を指定
        response_content = b"Hello, this is a custom response!\n"
        # レスポンスの送信
        self.wfile.write(response_content)
if __name__ == '__main__':
    # サーバーの設定
    server_address = ('localhost', 8080)
    httpd = HTTPServer(server_address, MyHandler)
    # サーバーの開始
    print(f"Starting server on http://{server_address[0]}:{server_address[1]}...")
    httpd.serve_forever()
EOF
)
# ファイルのパス
file_path="server.py"
# ファイルの作成と書き込み
echo "$python_script_content" > "$file_path"
echo "Python server script created at: $file_path"
python3 server.py

あとはGCEをそのまま動かせば、ローカルで動くAPIはできる。

Discussion