Не удается отправить сообщение от Lambda в SQS - PullRequest
0 голосов
/ 13 июля 2020

Мне нужно отправить только определенные c файлы, содержащие указанный c атрибут (метаданные) из моего ведра s3 в SQS. Я не уверен, как это лучше всего сделать. Поскольку в SQS нет ни опции фильтра, ни SNS.

EDIT: я следовал инструкциям и подключил лямбда-выражение с s3 для отправки сообщений в sqs, но все равно что-то не так. SQS сообщает «Сообщение в полете» вместо полученного сообщения. Я не вижу сообщение, когда ищу сообщения.

public async Task<SendMessageResponse> FunctionHandler(S3Event evnt, ILambdaContext context)
    {
        Task<SendMessageResponse> sendMessageResponse;
        var s3Event = evnt.Records?[0].S3;
        try
        {
            var meta = "x-amz-meta-ml-score";
            SendMessageRequest sendMessageRequest = new SendMessageRequest();
            var response = await this.S3Client.GetObjectMetadataAsync(s3Event.Bucket.Name, s3Event.Object.Key);
            
            

            foreach (string metadata in response.Metadata.Keys)
            {
                if (metadata == meta)
                {
                    sendMessageRequest.QueueUrl = myQueueUrl;
                    sendMessageRequest.MessageBody = evnt.ToString();
                    sendMessageRequest.MessageBody = s3Event.ToString();
                    //sendMessageResponse = await SQSCleint.SendMessageAsync(sendMessageRequest);
                }
            }
            

            return await this.SQSCleint.SendMessageAsync(sendMessageRequest);
        }
        catch(Exception e)
        {
            context.Logger.LogLine($"Error getting object {s3Event.Object.Key} from bucket {s3Event.Bucket.Name}. Make sure they exist and your bucket is in the same region as this function.");
            context.Logger.LogLine(e.Message);
            context.Logger.LogLine(e.StackTrace);
            throw;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...