public async execute(callback: Lambda.Callback) { var sqsClient = new AWS.SQS(); var queueUrl = "https://sqs.eu-west-1.amazonaws.com/170643467817/MessageBus_" + this.subscriberId; console.log("Queue Url: " + queueUrl); var receiveMessageResponse = await this.executeAwsRequestAsync<AWS.SQS.ReceiveMessageResult>((callback) => sqsClient.receiveMessage( { QueueUrl: queueUrl, MaxNumberOfMessages: 1, VisibilityTimeout: 10 }, callback)); if (receiveMessageResponse.Messages) { receiveMessageResponse.Messages.forEach((value, indexed) => { var body = JSON.parse(value.Body); var result = { receiptHandle: value.ReceiptHandle, message: body.Message }; console.log(result); callback(null, JSON.stringify(result)); }); } else { console.log("No messages"); callback(null, null); } }
await this.executeAwsRequestAsync((callback) => sqsClient.deleteMessage( { QueueUrl: queueUrl, ReceiptHandle: this.receiptHandle }, callback));
var receiveMessageResponse = await this.executeAwsRequestAsync<AWS.SQS.ReceiveMessageResult>((callback) => sqsClient.receiveMessage( { QueueUrl: queueUrl, MaxNumberOfMessages: 1, VisibilityTimeout: 10 }, callback));
var queueAttributesResponse = await this.executeAwsRequestAsync<AWS.SQS.GetQueueAttributesResult>((callback) => { sqsClient.getQueueAttributes( { QueueUrl: createQueueResponse.QueueUrl, AttributeNames: ["All"] }, callback); });
public async execute(callback: Lambda.Callback) { var snsClient = new AWS.SNS(); var sqsClient = new AWS.SQS(); var queueName = "MessageBus_" + this.subscriberId; var topicName = "MessageBus_" + this.messageType; console.log("Queue name: " + queueName); console.log("Topic name: " + topicName); var createQueueResponse = await this.executeAwsRequestAsync<AWS.SQS.CreateQueueResult>((callback) => sqsClient.createQueue( { QueueName: queueName, Attributes: { Policy: '{"Version": "2012-10-17","Id": "SNSSenMessage","Statement": [{"Sid": "Allow-SNS-SendMessage","Effect": "Allow","Principal": "*","Action": ["sqs:SendMessage","SQS:ReceiveMessage","SQS:DeleteMessage"],"Resource": "arn:aws:*:*:*"}]}' } }, callback)); var queueAttributesResponse = await this.executeAwsRequestAsync<AWS.SQS.GetQueueAttributesResult>((callback) => { sqsClient.getQueueAttributes( { QueueUrl: createQueueResponse.QueueUrl, AttributeNames: ["All"] }, callback); }); var queueArn = queueAttributesResponse.Attributes["QueueArn"]; console.log("SQS queue created: " + createQueueResponse.QueueUrl + ":" + queueArn); var createTopicResponse = await this.executeAwsRequestAsync<AWS.SNS.CreateTopicResult>((callback) => snsClient.createTopic( { Name: topicName }, callback)); console.log("SNS topoc created: " + createTopicResponse.TopicArn); var subscribeResponse = await this.executeAwsRequestAsync<AWS.SNS.SubscribeResult>((callback) => snsClient.subscribe( { TopicArn: createTopicResponse.TopicArn, Protocol: "sqs", Endpoint: queueArn }, callback)); console.log("SQS queue subscribed to topic: " + subscribeResponse.SubscriptionArn); }
public async execute(callback: Lambda.Callback) { var sqsClient = new AWS.SQS(); var queueUrl = "https://sqs.eu-west-1.amazonaws.com/170643467817/MessageBus_" + this.subscriberId; console.log("Queue Url: " + queueUrl); console.log("Receipt Handle: " + this.receiptHandle); await this.executeAwsRequestAsync((callback) => sqsClient.deleteMessage( { QueueUrl: queueUrl, ReceiptHandle: this.receiptHandle }, callback)); }
///<reference path="../output/typings/index.d.ts" /> import * as AWS from 'aws-sdk'; var str: string; var creds: AWS.Credentials; creds = new AWS.Credentials(str, str); creds = new AWS.Credentials(str, str, str); str = creds.accessKeyId; /* * Base service class */ var service = new AWS.SQS(); service.makeRequest('POST', {param1:'foobar'}, (err, data) => {}); service.makeUnauthenticatedRequest('POST', {param1:'foobar'}, (err, data) => {}); service.setupRequestListeners(); service.makeRequest('state', {param1:'foobar'}, (err, data) => {}); var endpoint:AWS.Endpoint = service.endpoint; endpoint.host.toUpperCase() + endpoint.hostname.toUpperCase() + endpoint.href.toUpperCase() + endpoint.port.toFixed() + endpoint.protocol.toUpperCase(); /* * Request class */ var request = new AWS.Request(service, 'POST', {param1: 'foobar'}); request.send(); request.send((err, data) => null);
var createQueueResponse = await this.executeAwsRequestAsync<AWS.SQS.CreateQueueResult>((callback) => sqsClient.createQueue( { QueueName: queueName, Attributes: { Policy: '{"Version": "2012-10-17","Id": "SNSSenMessage","Statement": [{"Sid": "Allow-SNS-SendMessage","Effect": "Allow","Principal": "*","Action": ["sqs:SendMessage","SQS:ReceiveMessage","SQS:DeleteMessage"],"Resource": "arn:aws:*:*:*"}]}' } }, callback));