#firebase #google-cloud-functions #google-cloud-storage
# #firebase #google-cloud-функции #firebase-хранилище
Вопрос:
Я пытаюсь понять, почему использование хранилища firebase намного превышает мои ожидания
В моем хранилище Firebase всего несколько файлов фотографий, всего около 75 фотографий, по 100 КБ на каждую фотографию. но мои сохраненные байты и количество объектов намного превышают мои ожидания, как вы можете видеть на изображении выше. в этом случае, возможно, я найду ответ в документации здесь
При развертывании исходного кода вашей функции в облачных функциях этот исходный код сохраняется в корзине облачного хранилища. Затем Cloud Build автоматически встраивает ваш код в образ контейнера и помещает этот образ в реестр контейнеров. Облачные функции обращаются к этому образу, когда ему необходимо запустить контейнер для выполнения вашей функции.
Процесс создания образа полностью автоматизирован и не требует от вас прямого ввода
вероятно, это потому, что я создаю много облачных функций. вот почему количество сохраненных байтов и объектов в моем хранилище Firebase велико
теперь мне нужно знать, почему пропускная способность хранилища достигает 20,2 ГБ в месяц. Я все еще разрабатываю свое приложение, пользователь — это только я. Я не думаю, что достигну 20,2 ГБ через месяц, потому что в моем приложении для Android я использую кэш при отображении изображения.
Я подозреваю, что причина, по которой мое хранилище использует слишком высокую пропускную способность, связана с облачной функцией. в августе я выполняю большую часть firebase deploy
своей облачной функции. повлияет ли функция Cloud на использование полосы пропускания хранилища Firebase?
Я нахожусь в Индонезии, мое хранилище Firebase и Firestore расположены в юго-Восточной азии2, но моя облачная функция расположена в юго-Восточной азии2. моя облачная функция выполняет некоторые операции с моим хранилищем firestore и изображениями в хранилище. но все же я не думаю, что она достигнет 20,2 ГБ в месяц
как видно из приведенного выше изображения, использование полосы пропускания разделено на 3 разные части
- asia.artifacts.projectID.appspot.com
- gcf-sources-5900904-Азия-восток2
- projectID.appspot.com
asia.artifacts.projectID.appspot.com кажется, намного выше другого, он составляет до 4,3 ГБ
вот некоторая информация о моей проблеме. итак, мне нужно знать, повлияет ли развертывание / работа облачной функции на использование полосы пропускания хранилища Firebase?
Мне нужно понять, почему это произошло, потому что я беспокоюсь, что у меня возникнут непредвиденные расходы, если много пользователей будут использовать мое приложение.
Комментарии:
1. Вы решили эту проблему? Недавно я развернул 12 различных облачных функций, теперь пропускная способность достигла 15 ГБ в день. Ежедневных пользователей было всего 2. :((
Ответ №1:
Я тоже был удивлен использованием пропускной способности.
Во-первых, Firebase изменила некоторую политику
После 17 августа 2020 года за каждую операцию развертывания будет взиматься небольшая плата за место для хранения, используемое для контейнера функции. Например, если ваши функции потребляют?> 1 ГБ хранилища через реестр контейнеров, вам будет выставлен счет в размере 0,026 доллара США в месяц. Если ваш процесс разработки зависит от развертывания функций для тестирования, вы можете дополнительно минимизировать затраты, используя пакет локальных эмуляторов Firebase во время разработки.
Таким образом, наиболее разумным объяснением является создание облачной функции во npm install
время загрузки, которая генерирует использование полосы пропускания при загрузке node_modules
, а также занимает место в хранилище.
Я бы посоветовал использовать локальный эмулятор во время разработки как можно чаще, но во многих случаях производственный тест неизбежен, так грустно.
Ответ №2:
Часть документации, которую вы процитировали, которая имеет отношение к делу, здесь:
Облачные функции обращаются к этому образу, когда ему необходимо запустить контейнер для выполнения вашей функции.
Облачные функции получают доступ к созданным изображениям для запуска вашего кода, встроенного в изображение. Хотя в документации не указано, я бы предположил, что для каждого холодного запуска функции требуется загрузка изображения из корзины артефактов. Это объясняет использование этого сегмента.
Комментарии:
1. еще один вопрос, сэр, немного не по теме. Я только что понял, что облачная функция теперь доступна в Юго-Восточной Азии 2, Индонезия. (в настоящее время моя облачная функция находится в Азии-east2, Гонконг). итак, если мое хранилище Firebase и облачная функция находятся в одном регионе (Юго-Восточная азия2), это будет считаться выходом из сети в Google Cloud, и это будет бесплатно, потому что данные перемещаются из одного и того же местоположения. я прав? Я вижу отсюда cloud.google.com/storage/pricing
2. Я пытался связаться со службой поддержки и задать другой вопрос. с 17 августа 2020 года произошли изменения: облачные функции Firebase будут зависеть от некоторых дополнительных платных сервисов Google: облачная сборка, реестр контейнеров и облачное хранилище. firebase.google.com/support/faq#functions-pricing . может быть, именно поэтому увеличивается пропускная способность в артефакте, и я также получаю плату за сборку облака:( .и мне кажется, что пропускная способность будет увеличиваться всякий раз, когда я развертываю функцию (
firebase deploy
) . Я действительно не понимаю этого3. здесь у меня такая же ситуация. 5 основных облачных функций использовали облачное хранилище объемом 800 Мб, и мне по какой-то причине приходится платить. есть ли у нас для этого осмысленное объяснение?
4. Сегодня я впервые заметил то же самое. Когда я развернул одну функцию в качестве своей первой функции Firebase для нового проекта, она потребляла около 400 МБ пропускной способности. Однако каждое последующее развертывание небольших изменений для одной и той же функции потребляло в среднем только около 20 МБ дополнительной полосы пропускания. У Stoke мало этого нового обновления для выставления счетов: (
5. Мне уже выставляют счет, пока я нахожусь в процессе разработки. Я не понимаю, что они задумали. 99% хранилища используется облачными функциями. Интересно, что произойдет после публикации приложения.