Da SQS häufig verwendet wird, schreibe ich ein Beispiel für das Senden und Empfangen. Dieser Artikel hat eine große Bedeutung als eigenes Memorandum.
sample
# -*- coding: utf-8 -*-
from __future__ import print_function
import ConfigParser
import boto3
import json
#Konfigurationsdatei lesen
ini = ConfigParser.SafeConfigParser()
ini.read("./config.ini")
# sqs
sqs = boto3.client('sqs')
sqsUrl = ini.get("sqs", "url")
#Maximale Anzahl abzurufender Nachrichten
limit = 100
#Verarbeitungskörper
print('Loading function...')
def lambda_handler(event, context):
print('========== FUNCTION START ==========')
for cnt in range(0, limit):
queMessage = get_sqs_message(sqsUrl)
if queMessage is not None:
if "Messages" in queMessage:
receiptHandle = queMessage['Messages'][0]['ReceiptHandle']
message = queMessage['Messages'][0]['Body']
print('receiptHandle:' + str(receiptHandle))
print('messageBody:' + str(message))
else:
print('no message')
break
else:
ercnt += 1
print("ERROR COUNT:" + str(ercnt))
print('========== FUNCTION END ============')
#SQS-Nachrichtenerfassungsprozess
def get_sqs_message(sqs_url):
url = sqs_url
try:
response = sqs.receive_message(
QueueUrl=url,
)
except Exception as e:
print('=====Error=====')
print('get_sqs_message')
print('ERROR:' + str(e))
print('===============')
return None
return response
Sie können von SQS empfangen, wenn Sie die URL kennen.
sample
//Modul laden
var aws = require('aws-sdk');
var sqs = new aws.SQS({region: 'ap-northeast-1'});
//Maximale Anzahl abzurufender Nachrichten
var limit = 100;
//URL von sqs
var ini = require('./config.json');
var url = ini.sqs.url.test
//Hauptverarbeitung
exports.handler = function (event, context) {
var cnt = 0;
var params = {
QueueUrl: url
};
for (var i = 0; i < limit; i++) {
cnt++;
sqs.receiveMessage(params, function (err, data) {
if (err) {
console.log(err, err.stack);
} else {
if (data.Messages) {
var messageBody = data.Messages[0].Body;
var receiptHandle = data.Messages[0].ReceiptHandle;
console.log(messageBody);
console.log(receiptHandle);
}
}
if (cnt === limit) context.succeed();
});
}
};
config.json
{
"sqs": {
"url": {
"test": "https://sqs.ap-northeast-1.amazonaws.com/************/hogehoge-test"
}
}
Ich habe die Knotenseite mit json geschrieben.
Senden Sie nun eine Nachricht an SQS
sample
# -*- coding: utf-8 -*-
from __future__ import print_function
import ConfigParser
import boto3
#Konfigurationsdatei lesen
ini = ConfigParser.SafeConfigParser()
ini.read("./config.ini")
# sqs
sqs = boto3.client('sqs')
sqsUrl = ini.get("sqs", "url")
#Verarbeitungskörper
print('Loading function...')
def lambda_handler(event, context):
print('========== FUNCTION START ==========')
message = 'hogeeeeeeeeee'
send_sqs_message(sqsUrl, message)
print('========== FUNCTION END ============')
#SQS-Nachrichtenübertragungsverarbeitung
def send_sqs_message(sqs_url, send_message):
url = sqs_url
obj = send_message
try:
response = sqs.send_message(
MessageBody = obj,
QueueUrl = url,
DelaySeconds = 0
)
except Exception as e:
print('=====Error=====')
print('send_sqs_message')
print('ERROR:' + str(e))
print('===============')
return None
return response
sample
//Modul laden
var aws = require('aws-sdk');
var sqs = new aws.SQS({region: 'ap-northeast-1'});
//URL von sqs
var ini = require('./config.json');
var url = ini.sqs.url.test;
//Hauptverarbeitung
exports.handler = function (event, context) {
var message = 'hogeeeeeeee';
var params = {
MessageBody: message,
QueueUrl: url,
DelaySeconds: 0
};
sqs.sendMessage(params, function (err, data) {
if (err) {
console.log(err, err.stack)
} else {
console.log(data);
context.succeed();
}
});
};
__ Wie Sie sehen können, bin ich nicht gut im Knoten. __ __
Warum übrigens zwei Sprachen? Weil ich beides benutze