Skip to content

Instantly share code, notes, and snippets.

@melvinkcx
Last active November 20, 2020 06:47
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 melvinkcx/c14a5122118166f5cb35c8db96754a8d to your computer and use it in GitHub Desktop.
Save melvinkcx/c14a5122118166f5cb35c8db96754a8d to your computer and use it in GitHub Desktop.
Crafting CloudWatch Logs Lambda Event
import base64
import gzip
import json
event = {
"logGroup": "/ecs/melvin-dev",
"logStream": "ecs/melvin-dev/XXXXXXXXXX",
"owner": 100000000000,
"logEvents": [{
"message": "XXX.XXX.XXX.XXX:XXXXX - \"POST / HTTP/1.0\" 200",
"status_code": 200,
"scope": {
"type": "http",
"http_version": "1.0",
"server": [
"XXX.XXX.XXX.XXX",
12345
],
"client": [
"XXX.XXX.XXX.XXX",
12345
],
"scheme": "http",
"method": "POST",
"root_path": "",
"path": "/",
"raw_path": "b'/'",
"query_string": "b''",
"headers": [
[
"b'host'",
"b'XXX.XXX.XXX.XXX:12345'"
],
[
"b'accept'",
"b'application/json'"
],
[
"b'accept-language'",
"b'en-US,en;q=0.5'"
],
[
"b'accept-encoding'",
"b'gzip, deflate'"
]
],
}
}]
}
if __name__ == "__main__":
"""
Crafting CloudWatch Logs event for
testing Lambda Triggers
Steps:
1. JSON dumps the event
2. Encode the return value of (1) into bytes
3. Gzip compress (2)
4. Base64 encode (3)
"""
res = base64.b64encode(gzip.compress(bytes(json.dumps(event), 'utf-8')))
print(res)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment