Example #1
0
    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);
        }
    }
Example #2
0
 await this.executeAwsRequestAsync((callback) =>
     sqsClient.deleteMessage(
         {
             QueueUrl: queueUrl,
             ReceiptHandle: this.receiptHandle
         },
         callback));
Example #3
0
 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);
    }
Example #6
0
    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));