46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
# this function takes in "input_string" and return the sha256 hash of that string
|
|
|
|
import json
|
|
import hashlib
|
|
|
|
def lambda_handler(event, context):
|
|
# Get input_string from query params, body, or path
|
|
input_string = None
|
|
|
|
# Try query parameters first
|
|
if 'queryStringParameters' in event and event['queryStringParameters']:
|
|
input_string = event['queryStringParameters'].get('input_string')
|
|
|
|
# Try request body
|
|
if not input_string and 'body' in event:
|
|
try:
|
|
body = json.loads(event['body']) if isinstance(event['body'], str) else event['body']
|
|
input_string = body.get('input_string')
|
|
except:
|
|
input_string = event['body']
|
|
|
|
# Try path parameter as fallback
|
|
if not input_string and 'pathParameters' in event:
|
|
input_string = event['pathParameters'].get('input_string', event['pathParameters'].get('proxy'))
|
|
|
|
if not input_string:
|
|
return {
|
|
'statusCode': 400,
|
|
'headers': {'Content-Type': 'application/json'},
|
|
'body': json.dumps({'error': 'input_string required'})
|
|
}
|
|
|
|
# Calculate SHA256
|
|
sha256_hash = hashlib.sha256(input_string.encode('utf-8')).hexdigest()
|
|
|
|
return {
|
|
'statusCode': 200,
|
|
'headers': {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
'body': json.dumps({
|
|
'input_string': input_string,
|
|
'sha256': sha256_hash
|
|
})
|
|
}
|