Google Cloud Functions

Похоже РКН начал блокировать сервисы Google, столкнулись с отключением сервиса Google Cloud Functions на территории РФ, при использовании прокси или VPN сервис стабильно отвечает.

Для проверки сделал функцию-пустышку на базе данного сервиса, который возвращает { status: 'ok' } при успешном выполнении.

Локации (если нужен другой регион из списка Cloud Functions Locations, то пишите, добавлю)
Iowa (USA): https://us-central1-roskomnadzor-org.cloudfunctions.net/status
Belgium (Europe): https://europe-west1-roskomnadzor-org.cloudfunctions.net/status
Frankfurt (Europe): https://europe-west3-roskomnadzor-org.cloudfunctions.net/status

GlobalCheck:

Недоступен порт 443 на IP-адресе этого домена у провайдеров с ТСПУ. То же самое, что в Не открываются некоторые сайты за Cloudflare CDN

Оба домена (обе локации) резолвятся в один IP-адрес 216.239.36.54. Здесь нет ошибки в настройке?

Добавил ещё одну локацию (Frankfurt, Germany) https://europe-west3-roskomnadzor-org.cloudfunctions.net/status, также отдает 216.239.36.54

Ошибок в настройке нет.

Сделал простой прокси сервер, чтобы на коленке быстро поднять прокси чтобы все работало.

Поднять можно самостоятельно.

Вот примеры
https://firebase-proxy-example.herokuapp.com/functions/us-central1/roskomnadzor-org/status
https://firebase-proxy-example.herokuapp.com/functions/europe-west3/roskomnadzor-org/status

Документирую: ситуация не изменилась, доступа всё так же нет:

% curl -v https://europe-west1-roskomnadzor-org.cloudfunctions.net/status -4 --max-time 10
*   Trying 216.239.36.54:443...
* After 4999ms connect time, move on!
* connect to 216.239.36.54 port 443 failed: Connection timed out
* Failed to connect to europe-west1-roskomnadzor-org.cloudfunctions.net port 443 after 5001 ms: Connection timed out
* Closing connection 0
curl: (28) Failed to connect to europe-west1-roskomnadzor-org.cloudfunctions.net port 443 after 5001 ms: Connection timed out

РКН начал блокировать Firebase Hosting:

https://roskomnadzor-org.web.app/
https://roskomnadzor-org.firebaseapp.com/


Внереестровая блокировка IP-адреса 199.36.158.100.

Похоже разблокировали, провайдер Дом.РУ, всё стабильно резолвится. Облачные функции всё также дропают соединение по таймауту

199.36.158.100 (*.web.app) заработал, 216.239.36.54 (*.cloudfunctions.net) всё ещё нет.

Есть идеи как можно использовать прокси с Callable functions?

Нашёл быстрое решение без прокси через firebase hosting.

Позволяет вам вызывать ваши функции с кастомного домена или дефолтного web.app
(Serve dynamic content and host microservices with Cloud Functions  |  Firebase Documentation)

  1. Добавляем в firebase.json:
  "hosting": {
    "rewrites": [ {
      "source": "/api/{название вашей функции}",
      "function": "{название вашей функции}"
    } ]
  }
  1. Диполим
firebase deploy --only functions,hosting
  1. Вызываем функции с любого прикреплённого домена по пути /api/{название вашей функции}

Для Callable Functions на клиенте добавляем свой домен:

export const functions = getFunctions(app, 'us-central1');
functions.customDomain = 'https://{projectId}.web.app/api';

Решение работает только для функций на us-central1!

@adinvadim @ValdikSS

Разбанили, все регионы резолвятся

Действительно, и 199.36.158.100 (*.web.app), и 216.239.36.54 (*.cloudfunctions.net) теперь работают.