Почему AWS SNS рассматривает ответ 404 от подписчика как успешный?

0

Вопрос

Мне трудно понять, как SNS обрабатывает ответные сообщения. Мой подписчик SNS-это страница, которая может выйти из строя или просто вернуть ошибку 4xx.

Однако по какой-то причине кажется, что SNS рассматривает запросы, возвращающие коды ошибок 4xx, как успешные.

Как я могу сделать так, чтобы он вышел из строя, если код ответа равен 4xx, а не только 5xx?

Из журналов мы видим, что подписчик возвращает код состояния 404 Не найден, но, несмотря на это, статус запроса по-прежнему УСПЕШЕН.

{
    "notification": {
        "messageMD5Sum": "fd746e97153916fd99bba*********",
        "messageId": "be666c50-8de5-594b-9e77-*********",
        "topicArn": "arn:aws:sns:us-east-1:060758096283:*********,
        "timestamp": "2021-11-23 14:21:23.778"
    },
    "delivery": {
        "deliveryId": "ef278086-2a70-5512-a191-da90d1534d24",
        "redrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:*********:*********-DLQ\"}",
        "destination": "*********/subscriber.php",
        "providerResponse": "Not Found",
        "dwellTimeMs": 80,
        "attempts": 1,
        "statusCode": 404
    },
    "status": "SUCCESS"
}

Это вызывает у меня проблемы с мониторингом, так как очень трудно определить, действительно ли мои запросы успешны или нет, не просматривая их вручную.

amazon-sns
2021-11-23 14:36:00
1

Лучший ответ

0

Задача SNS - доставить сообщение на конечную точку. Если конечная точка отвечает действительным кодом состояния (а не ошибкой 5XX), она считает доставку сообщения успешной. Как будет получен ответ на это сообщение, зависит от получающего API.

Чтобы быть точным, только коды состояния за пределами диапазона 200-499 будут рассматриваться как ошибки и повторяться в соответствии с вашей политикой повторных попыток в соответствии с https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html. Как только максимальное количество повторных попыток будет исчерпано, сообщение будет доставлено в DLQ, если оно настроено.

2021-11-23 20:35:09

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................