У меня есть веб-приложение Springboot, развернутое в облаке, и оно работает в рабочей среде уже несколько лет.
URL-адрес экземпляра облачного запуска: https://myapp-prod-a7ow2sutca-de.a.run.app регион: Азия-Восток1
У нас также есть собственное сопоставление доменов: api.myapp.com -> https://myapp-prod-a7ow2sutca-de.a.run.app
Теперь мы работаем с платежным шлюзом, который будет отправлять нам уведомление о получении платежа через REST API, и поэтому мы предоставляем конечную точку api.myapp.com/paying-received, к которой они будут обращаться при получении платежа на стороне платежного шлюза.
Вчера внезапно некоторые уведомления (периодически) пропали, и нам сообщили, что некоторые запросы, отправленные на api.myapp.com/pay-received, не получили никакого ответа. Дальнейшее расследование привело к тому, что api.myapp.com разрешил адрес 74.125.68.121, который недоступен (пытался выполнить ping, он дает тайм-аут). Таким образом, запросы, исходящие из одного из их кластеров, всегда не доходили до нас, потому что api.myapp.com всегда разрешал этот плохой IP-адрес.
Затем я создал новое облачное развертывание api2.myapp.com в другом регионе и попросил их проверить связь с api2.myapp.com из проблемного кластера. И сначала он разрешается на другой IP-адрес, и его можно пинговать, но через несколько минут он снова разрешается на 74.125.68.121 и снова недоступен.
Другие платежные шлюзы по-прежнему работают без проблем, только этот платежный шлюз вызывает эту проблему. Они утверждают, что это проблема Google Cloud: они направляют свои запросы на плохой IP-адрес.
У нас также есть Cloudflare, и они заявили, что не имеют к этому никакого отношения, и подтвердили, что не существует конфигурации, которая блокировала бы определенные IP-адреса или что-то странное.
В чем здесь проблема? К кому мне следует обратиться в этом случае? Несколько лет все работало нормально, и вдруг случилось вот это...
Также мне любопытно, поскольку Cloud Run развернут в регионе Asia-east1, почему, когда я пингую api.myapp.com со своего локального терминала, я всегда вижу IP-адрес, исходящий из США, принадлежащий Google? Я ожидал увидеть IP-адрес из страны региона Asia-east1 (Тайвань)
Может быть, создать запрос в службу поддержки Google?
При создании службы cloud run
ей автоматически присваивается динамический IP-адрес, который может меняться.
Если служба облачного запуска подключается к внешней конечной точке, например database or API
, которая использует брандмауэр на основе IP-адреса, вы можете настроить static IP
, а затем использовать его в службе. Следуйте этому официальному документу для создания статического исходящего IP-адреса.
Если вам нужен входящий общедоступный трафик на static IP
, вы можете попробовать использовать HTTP load balancer
и serverless network endpoint group(NEG)
. Для получения дополнительной информации следуйте этим официальным документам Serverless NEG и статическим исходящим IP-адресам.
Хотя вы говорите, что Cloudflare
не задействован, стоит проконсультироваться с ними, чтобы убедиться в отсутствии конфигураций или правил пограничного кэширования, которые могут вызывать проблемы с перенаправлением или разрешением DNS.
IP addresses
происходят из США, это потому, что они принадлежат к тому же глобальному блоку IP, что и Google.
Возможно, возникла проблема с DNS. Попробуйте запросить платежный шлюз для очистки кэша DNS и повторите попытку. Тем не менее, если вы хотите узнать о своей текущей конфигурации, вы можете создать новую ветку отслеживания проблем , описывающую вашу проблему. Если у вас есть платная поддержка, попробуйте создать задачу.
Да, у нас нет проблем с исходящими сообщениями, это чисто входящие проблемы. Я думаю, что проверка связи api.mysite.com из другого места даст другой IP-адрес, и это нормально, если IP-адрес хороший (достижимый). Это произошло через несколько лет, и внезапно он разрешился в IP-адрес, который недоступен... Я связался с командой Cloudflare, и они сказали, что именно Google отвечает за разрешение api.mysite.com в IP-адрес. Я пытаюсь получить платную поддержку, но это ад - настраивать организацию и переносить неорганизованные проекты...
Сегодня внезапно проблема исчезла, кажется, проблема с кешем DNS, которая странно длинная - кеш длится несколько дней.... я предполагаю, что это проблема поставщика платежей..
Все IP-адреса Google относятся к «Соединенным Штатам», независимо от того, в каком регионе они фактически используются/назначаются для рабочей нагрузки.