簡體   English   中英

AWS Lambda 未向 SQS 隊列發送消息

[英]AWS Lambda is not sending a messages to SQS queue

我正在嘗試從 Lambda 向 SQS 發送消息(硬編碼)。 我在本地運行 lambda 並在 SQS 中獲取消息。 部署的 lambda(圖像)不起作用,我已將 AmazonSQSFullAcess 添加到 lambda 角色。

 const AWS = require('aws-sdk'); AWS.config.update({ region: process.env.REGION }); const sqs = new AWS.SQS({ apiVersion: '2012-11-05' }); let response; /** * * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format * @param {Object} event - API Gateway Lambda Proxy Input Format * * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html * @param {Object} context * * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html * @returns {Object} object - API Gateway Lambda Proxy Output Format * */ exports.lambdaHandler = async (event, context) => { try { hrValue = { projectId: '35', email: 'test@aaa.com' } try { const listString = JSON.stringify(hrValue) const params = { DelaySeconds: 1, MessageAttributes: { "email": { DataType: "String", StringValue: hrValue.email }, "projectId": { DataType: "String", StringValue: hrValue.projectId }, }, MessageBody: listString, QueueUrl: "https://sqs.ca-central-1.amazonaws.com/694292245325/sqs-test-lambda" }; console.log('## send params: ', JSON.stringify(params)) let sendSqsMessage = sqs.sendMessage(params).promise(); sendSqsMessage.then((data) => { console.log(`SQS | SUCCESS: ${data.MessageId}`); }).catch((err) => { console.log(`SQS | ERROR: ${err}`); }); response = { 'statusCode': 200, 'body': JSON.stringify({ message: 'send to sqs', // location: ret.data.trim() }) } } catch (error) { console.log(error) } } catch (err) { console.log(err); return err; } return response };

因此,當從圖像部署 lambda 時,SQS 是空的,我還需要什么讓它工作?

將此添加到您的 SQS 訪問策略

{
      "Sid": "TrustUsers",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:<Your SQS Region>:<Your AWS Account ID>:<Your SQS Name>"
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM