How can i confirm the subscription request HTTP from amazon SNS

后端 未结 5 1716
不思量自难忘°
不思量自难忘° 2020-12-30 21:20

I have been searching all over the web and nothing gives a clear answer to confirm the subscription request from amazon SNS. I already send the subscription from the amazon

5条回答
  •  Happy的楠姐
    2020-12-30 21:33

    I solved this using NodeJS backend. Lets say you have an API like this in HapiJS (Well it doesnt matter you can have another tech)

    {
        method: 'POST',
        path: '/hello',
        handler: ( request, reply ) => {
    
            reply( Hello.print(request.payload) );
        },
        config: {
            tags: ['api']
        }
    }
    

    Just pass the payload you receive, on to your business logic.

    In the business logic process it like this

        'use strict';
        const request = require('request');
    
        exports.print = (payload) => {
    
        payload = JSON.parse(payload);
        if(payload.Type === 'SubscriptionConfirmation'){
    
            return new Promise((resolve, reject) => {
                const url = payload.SubscribeURL;
                request(url, (error, response) => {
    
                    if (!error && response.statusCode == 200) {
                        console.log('Yess! We have accepted the confirmation from AWS');
                        return resolve();
                    }
                    else 
                        return reject();
                });
            });
        }
    

    I am using request module from NPM to automatically accept such requests.

    Another way would be to print the contents of payload and then click on the URL given in payload.SubscribeURL.

    Once AWS accepts it you check the confirmation on the Subscriptions page where Subscription ARN would be changed from Pending Confirmation to a complex name-cum-SHA having your Topic name.

提交回复
热议问题