Spaces:
Sleeping
Sleeping
File size: 3,029 Bytes
266d7bc 804054e 266d7bc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#!/bin/bash
# -----------------------
# FastAPI Backend Deployment to Cloud Run
# -----------------------
# Exit immediately if a command exits with a non-zero status
set -e
#-----------------------
# Load environment variables
#-----------------------
if [ ! -f .env ]; then
echo "β .env file not found!"
exit 1
fi
# Load environment variables from .env file
set -o allexport
source .env
set +o allexport
echo "β
Environment variables loaded."
# -----------------------
# Configuration
# -----------------------
PROJECT_ID="personal-projects-477710"
SERVICE_NAME="feed-pipeline-fastapi"
REGION="asia-south2" #europe-west1 "europe-west6"
IMAGE_NAME="gcr.io/$PROJECT_ID/$SERVICE_NAME"
# -----------------------
# Set project
# -----------------------
echo "π§ Setting GCP project to $PROJECT_ID..."
gcloud config set project "$PROJECT_ID"
# -----------------------
# Enable required APIs
# -----------------------
echo "π§ Enabling required GCP services..."
gcloud services enable \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
# -----------------------
# Build and push Docker image
# -----------------------
echo "π³ Building and pushing Docker image..."
gcloud builds submit --config cloudbuild_fastapi.yaml \
--substitutions=_SERVICE_NAME=$SERVICE_NAME
# -----------------------
# Deploy to Cloud Run
# -----------------------
echo "π Deploying $SERVICE_NAME to Cloud Run..."
gcloud run deploy "$SERVICE_NAME" \
--image "$IMAGE_NAME" \
--platform managed \
--region "$REGION" \
--allow-unauthenticated \
--memory 2.5Gi \
--cpu 1 \
--timeout 180 \
--concurrency 2 \
--min-instances 0 \
--max-instances 2 \
--execution-environment gen2 \
--cpu-boost \
--set-env-vars HF_HOME=/tmp/huggingface \
--set-env-vars HUGGING_FACE__API_KEY=$HUGGING_FACE__API_KEY \
--set-env-vars QDRANT__API_KEY=$QDRANT__API_KEY \
--set-env-vars QDRANT__URL=$QDRANT__URL \
--set-env-vars QDRANT__COLLECTION_NAME=$QDRANT__COLLECTION_NAME \
--set-env-vars QDRANT__DENSE_MODEL_NAME=$QDRANT__DENSE_MODEL_NAME \
--set-env-vars QDRANT__SPARSE_MODEL_NAME=$QDRANT__SPARSE_MODEL_NAME \
--set-env-vars OPENROUTER__API_KEY=$OPENROUTER__API_KEY \
--set-env-vars OPIK__API_KEY=$OPIK__API_KEY \
--set-env-vars OPIK__PROJECT_NAME=$OPIK__PROJECT_NAME \
--set-env-vars "^@^ALLOWED_ORIGINS=$ALLOWED_ORIGINS@" \
# Log the allowed origins
echo "β
Allowed origins set to: $ALLOWED_ORIGINS"
# -----------------------
# Capture the deployed service URL and update BACKEND_URL
#-----------------------
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region=$REGION --format='value(status.url)')
echo "Deployment complete!"
echo "Service URL: $SERVICE_URL"
# # -----------------------
# # Update BACKEND_URL dynamically
# # -----------------------
# echo "π Updating BACKEND_URL to $SERVICE_URL..."
# gcloud run services update "$SERVICE_NAME" \
# --region "$REGION" \
# --update-env-vars BACKEND_URL="$SERVICE_URL"
# echo "β
BACKEND_URL updated successfully."
|