billing_data 데이터세트 생성한 후 Billing의 결제 내보내기 > 설정 수정에서 billing_data로 내보내게 해준다
개인 계정에서 만들어봤더니 웹훅 설정이 뜨지 않았다.
회사 계정에서 스페이스를 따로 만들어 줘야 했다.
URL을 기억해둔다
getBillingAlert functions생성
main.py
from google.cloud import bigquery
from httplib2 import Http
from json import dumps
from datetime import datetime
def run_rule(request):
client = bigquery.Client()
query_job = client.query("""
SELECT sum(cost) as total_cost FROM
`project_name.dataset.tablename`""")
for row in query_job:
tcost = row["total_cost"]
url = '<Google Chat 스페이스 webhook URL>'
now = datetime.now()
msg_content = "GCP Cost: {}".format(tcost) + " [date]: " + now.strftime("%m/%d/%Y, %H:%M:%S")
bot_message = {
'text' : msg_content}
message_headers = { 'Content-Type': 'application/json; charset=UTF-8'}
http_obj = Http()
response = http_obj.request(
uri=url,
method='POST',
headers=message_headers,
body=dumps(bot_message),
)
requirement.py
# Function dependencies, for example:
# package>=version
google-cloud-pubsub==0.34.0
google-cloud-storage==1.13.1
google-cloud-bigquery==1.8.1
google-cloud-core==0.29.1
pytz==2018.7
Cloud Functions Test
functions log
URL은 만들어준 Cloud Functions의 트리거 URL
매일 오전 10시에 GCP Billing에 대한 메시지가 사내 메신저인 Google Chat으로 오게 하려고 했으나 cron 표현식을 잘못 입력했다.. 위의 사진은 매월 10일에 알람이 오게끔 하는 것이다.