-
-
Save richardgrantserverless/6f24cabd9480d4b0aa87b0e810c29f1d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# handler.py | |
import json | |
import os | |
from botocore.vendored import requests | |
import boto3 | |
SLACK_URL = os.environ.get('SLACK_URL') | |
CLIENT = boto3.client('ssm') | |
def parameter(event, context): | |
formatted = format_message(event) | |
send_to_slack(formatted) | |
def format_message(parameter_event): | |
name = parameter_event.get('detail').get('name') | |
operation = parameter_event.get('detail').get('operation') | |
resp = CLIENT.describe_parameters( | |
Filters=[ | |
{ | |
"Key": "Name", | |
"Values": [name] | |
} | |
] | |
) | |
last_modified_user = resp['Parameters'][0]['LastModifiedUser'] | |
version = resp['Parameters'][0]['Version'] | |
text = '\n'.join([ | |
"Paramater changed in SSM!", | |
"A *{}* operation was performed on parameter *{}*".format(operation.upper(), name), | |
"Change made by {}".format(last_modified_user), | |
"Parameter now on version {}".format(version) | |
]) | |
return { | |
"text": text | |
} | |
def send_to_slack(message, url=SLACK_URL): | |
resp = requests.post(url, json=message) | |
resp.raise_for_status() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment