#sqs
#cloudwatch
#simple
Create SQS queues
Create IAM Role for lambda with SQS instance accessibility
Create sender lambda function to send messages to SQS queue
Create Dynamo DB table
Create Receiver lambda function to send message to Dynamo DB table
#################sender lambda function ##################
import json
import boto3
from datetime import datetime
def lambda_handler(event, context):
now = datetime.now()
current_time = now.strftime("%H:%M:%S %p")
send_message()
return {
'statusCode': 200,
'body': json.dumps(current_time)
}
def send_message():
sqs_client = boto3.client("sqs", region_name="ap-southeast-2")
message = {"vinod": "123"}
response = sqs_client.send_message(
QueueUrl="Queue URL",
MessageBody=json.dumps(message)
)
print(response)
#############################receiver lambda function ############
#importing packages
import json
import boto3
#function definition
def lambda_handler(event,context):
dynamodb = boto3.resource('dynamodb')
#table name
table = dynamodb.Table('my_sqs_data')
#inserting values into table
data = receive_message()
for message in data.get("Messages", []):
message_body = message["Body"]
print(type(message_body))
Item2={
'id': 'bhagi'
}
Item2["sms"]=message_body
response = table.put_item(
Item=Item2
)
return response
def receive_message():
sqs_client = boto3.client("sqs", region_name="ap-southeast-2")
response = sqs_client.receive_message(
QueueUrl="Queue URL",
MaxNumberOfMessages=1,
WaitTimeSeconds=10,
)
print(f"Number of messages received: {len(response.get('Messages', []))}")
return response