Skip to content

Commit 0d12ec3

Browse files
committed
add cloud scheduler work
1 parent eff2431 commit 0d12ec3

File tree

2 files changed

+58
-2
lines changed

2 files changed

+58
-2
lines changed

backend/genai/src/main.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,14 +287,22 @@ async def question(request: Request):
287287
logger.info(f"{event_id}: finished generating content")
288288

289289
answer_ref.update(
290-
{"content": response_model.text, "loading": False, "status": "success"}
290+
{
291+
"content": response_model.text,
292+
"loading": False,
293+
"status": "success",
294+
}
291295
)
292296
message_ref.update({"loading": False, "status": "success"})
293297
logger.info(f"{event_id}: finished generating an answer: {messageId}")
294298
except Exception as err:
295299
message_ref.update({"loading": False, "status": "failed"})
296300
answer_ref.update(
297-
{"content": QUESTION_FAILED_MESSAGE, "loading": False, "status": "failed"}
301+
{
302+
"content": QUESTION_FAILED_MESSAGE,
303+
"loading": False,
304+
"status": "failed",
305+
}
298306
)
299307
logger.info(
300308
f"{event_id}: failed generating an answer: err={err}, type(err)={type(err)}"
@@ -365,6 +373,12 @@ async def summarize(request: Request):
365373
return Response(content="finished", status_code=204)
366374

367375

376+
@app.post("/hcheck")
377+
async def hcheck():
378+
"""ヘルスチェック用エンドポイント"""
379+
return Response(content="finished", status_code=200)
380+
381+
368382
if __name__ == "__main__":
369383
# see: https://github.com/googleapis/google-auth-library-python/blob/main/google/auth/_default.py#L577-L595
370384
_, project_id = gauth.default()

scripts/bind-schedule-invoke.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
# Schedule Invoke to Cloud Run for Cloud Scheduler
5+
export PROJECT_ID="advena-dev"
6+
export REGION="us-central1"
7+
export GRANT_CLOUD_RUN_SERVICE="backend-advena"
8+
export USER_SA_OF_SCHEDULER="schedule-invoke-cloud-run"
9+
export USER_SA_OF_SCHEDULER_EMAIL="${USER_SA_OF_SCHEDULER}@${PROJECT_ID}.iam.gserviceaccount.com"
10+
11+
echo "=== Settings ==="
12+
echo "PROJECT_ID: $PROJECT_ID"
13+
echo "REGION: $REGION"
14+
echo "GRANT_CLOUD_RUN_SERVICE: $GRANT_CLOUD_RUN_SERVICE"
15+
echo "USER_SA_OF_SCHEDULER: $USER_SA_OF_SCHEDULER"
16+
echo "USER_SA_OF_SCHEDULER_EMAIL: $USER_SA_OF_SCHEDULER_EMAIL"
17+
echo "================"
18+
19+
# Enable the Cloud Scheduler API
20+
gcloud services enable cloudscheduler.googleapis.com --project "${PROJECT_ID}"
21+
22+
# サービスアカウントの存在チェックと作成
23+
if ! gcloud iam service-accounts list \
24+
--filter="email:${USER_SA_OF_SCHEDULER_EMAIL}" \
25+
--format="value(email)" | grep -q "${USER_SA_OF_SCHEDULER_EMAIL}"; then
26+
echo "Creating service account: ${USER_SA_OF_SCHEDULER_EMAIL}"
27+
gcloud iam service-accounts create "${USER_SA_OF_SCHEDULER}" \
28+
--project="${PROJECT_ID}" \
29+
--description="Cloud Scheduler Service Account for Cloud Run Invoker"
30+
else
31+
echo "Service account ${USER_SA_OF_SCHEDULER_EMAIL} already exists. Skipping creation."
32+
fi
33+
34+
# Grant role
35+
echo "Granting Cloud Run Invoker role to Service Account for Cloud Scheduler"
36+
gcloud run services add-iam-policy-binding "${GRANT_CLOUD_RUN_SERVICE}" \
37+
--member="serviceAccount:${USER_SA_OF_SCHEDULER_EMAIL}" \
38+
--role="roles/run.invoker" \
39+
--region="${REGION}" \
40+
--project="${PROJECT_ID}"
41+
42+
echo "⭐️ All done!"

0 commit comments

Comments
 (0)