update credentials to support env variable
This commit is contained in:
@@ -33,6 +33,37 @@ CREDENTIALS_PATH = os.environ.get(
|
|||||||
PROJECT_ID = "food-security-asean-project"
|
PROJECT_ID = "food-security-asean-project"
|
||||||
LOCATION = "asia-southeast2"
|
LOCATION = "asia-southeast2"
|
||||||
|
|
||||||
|
|
||||||
|
# SETUP BIGQUERY CLIENT
|
||||||
|
|
||||||
|
def get_bigquery_client() -> bigquery.Client:
|
||||||
|
"""
|
||||||
|
Create BigQuery client.
|
||||||
|
Priority:
|
||||||
|
1. GOOGLE_CREDENTIALS_JSON env variable (Coolify/production)
|
||||||
|
2. GOOGLE_APPLICATION_CREDENTIALS file path (lokal/development)
|
||||||
|
"""
|
||||||
|
credentials_json = os.environ.get("GOOGLE_CREDENTIALS_JSON")
|
||||||
|
|
||||||
|
if credentials_json:
|
||||||
|
credentials_dict = json.loads(credentials_json)
|
||||||
|
credentials = service_account.Credentials.from_service_account_info(
|
||||||
|
credentials_dict,
|
||||||
|
scopes=["https://www.googleapis.com/auth/cloud-platform"]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
credentials = service_account.Credentials.from_service_account_file(
|
||||||
|
CREDENTIALS_PATH,
|
||||||
|
scopes=["https://www.googleapis.com/auth/cloud-platform"]
|
||||||
|
)
|
||||||
|
|
||||||
|
return bigquery.Client(
|
||||||
|
credentials=credentials,
|
||||||
|
project=PROJECT_ID,
|
||||||
|
location=LOCATION
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# DATASET IDs
|
# DATASET IDs
|
||||||
# Bronze = Raw Layer | Silver = Staging Layer | Gold = DW Layer (Kimball)
|
# Bronze = Raw Layer | Silver = Staging Layer | Gold = DW Layer (Kimball)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user