
import json
import os
import urllib.request
SLACK_CHANNEL = os.environ['SLACK_CHANNEL']
HOOK_URL = os.environ['HOOK_URL']
def send_message(message: str):
send_data = {
"text": message,
}
send_text = json.dumps(send_data)
request = urllib.request.Request(
HOOK_URL,
data=send_text.encode('utf-8'),
)
response = urllib.request.urlopen(request)
print("[SLACK-RESPONSE]", response)
def get_job_link(event_convert: dict) -> str:
region = event_convert["region"]
job_name = event_convert["detail"]["jobName"]
job_id = event_convert["detail"]["jobRunId"]
job_link = f"https://{region}.console.aws.amazon.com/gluestudio/home?region={region}#/job/{job_name}/run/{job_id}"
return job_link
def lambda_handler(event, context):
# TODO implement
event_convert = json.loads(event["Records"][0]["Sns"]["Message"])
message = get_job_link(event_convert=event_convert)
send_message(message=message)


이벤트 패턴이 있는 규칙 체크 후 다음 버튼

{
...
"detail": {
"jobName": ["job_name1", "job_name2"],
"state": [알림 받을 STATE]
}
}
{
...
"detail": {
"jobName": ["agg-daily", "agg-hourly"],
"state": ["FAILED", "TIMEOUT"]
}
}

📑 reference