Skip to content

Instantly share code, notes, and snippets.

@richardgrantserverless
Created May 26, 2022 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardgrantserverless/6f24cabd9480d4b0aa87b0e810c29f1d to your computer and use it in GitHub Desktop.
Save richardgrantserverless/6f24cabd9480d4b0aa87b0e810c29f1d to your computer and use it in GitHub Desktop.
# 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