{
"Comment": "SQS Consumer",
"StartAt": "ConsumeMessages",
"States": {
"ConsumeMessages": {
"Type": "Task",
"Resource": "arn:aws:states:::sqs:receiveMessage",
"Parameters": {
"QueueUrl.$": "$.queueUrl",
"MaxNumberOfMessages": 1
},
"Next": "ProcessMessage"
},
"ProcessMessage": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:111111111111:function:processMessage",
"End": true
}
}
}
其中,资源 arn:aws:states:::sqs:receiveMessage 用于从 SQS 队列中接收消息。参数 QueueUrl 为 AWS Step Functions 参数,用于指定 SQS 队列的 URL。processMessage),用于处理从 SQS 接收到的消息。下面是一个示例 Lambda 函数代码:exports.handler = async (event) => {
console.log('Received event:', JSON.stringify(event, null, 2));
const records = event.Records;
for (const record of records) {
console.log('Processing message:', record.body);
}
return {};
};
const AWS = require('aws-sdk');
const sf = new AWS.StepFunctions();
const params = {
stateMachineArn: 'arn:aws:states:us-west-2:111111111111:stateMachine:MySQSStateMachine',
input: JSON.stringify({
"queueUrl": "https://sqs.us-west-2.amazonaws.com/111111