Ошибка развертывания функции Firebase. Не удалось проанализировать спецификацию сборки.Python

Программы на Python
Anonymous
Ошибка развертывания функции Firebase. Не удалось проанализировать спецификацию сборки.

Сообщение Anonymous »


Я столкнулся с проблемой при попытке развернуть написанную на Python функцию Firebase. Я получаю следующее сообщение об ошибке:

Ошибка: не удалось проанализировать спецификацию сборки:
[*]FirebaseError Похоже, вы используете более новый SDK, чем поддерживает эта версия CLI. Пожалуйста, обновите свой CLI с помощью npm install -g firebase-tools
Подробности:

Окружающая среда:

firebase-admin: 6.4.0 (последняя версия), такая же, как Firebase Python SDK firebase-tools: 13.4.0 (последняя версия), то же, что и Firebase CLI Платформа: macOS Питон: 3.12

Использованная команда:

Firebase Deploy --debug --only Functions

[2024-02-29T15:30:14.892Z] > для команды требуются области действия: ...... === Развертывание в «miniproject1-412516»... ...... [2024-02-29T15:30:21.160Z] Код клиента не Node [2024-02-29T15:30:21.162Z] Проверка исходного кода Python [2024-02-29T15:30:21.162Z] Сборка исходного кода Python i-функции: загрузка и анализ исходного кода для кодовой базы по умолчанию, чтобы определить, что развертывать. [2024-02-29T15:30:21.180Z] Найдены функции.yaml. Получил спецификацию: specVersion: 1 версия: 1 функции: Collect_and_save_data_to_firebase_storage: имя: Collect_and_save_data_to_firebase_storage время выполнения: python312 триггер: http источник: main.py Ошибка: не удалось проанализировать спецификацию сборки: - FirebaseError Кажется, вы используете более новый SDK, чем поддерживает эта версия CLI. Пожалуйста, обновите свой CLI с помощью `npm install -g firebase-tools` Я уже пробовал обновить интерфейс командной строки Firebase с помощью npm install -g firebase-tools, но та же ошибка не исчезла. Как я могу решить эту проблему? Любая информация будет принята с благодарностью. Спасибо!

Добавлен код main.py!

запросы на импорт импортировать JSON импортировать панд как pd импортировать ОС импортировать concurrent.futures время импорта импортировать firebase_admin из datetime импорта datetime,timedelta из firebase_admin импортировать учетные данные, хранилище, инициализировать_приложение из хранилища google.cloud импортировать как gcs импортировать систему импорт ио защита Collect_and_save_data_to_firebase_storage(): service_account_key = { "удаленный" } cred = учетные данные.Сертификат(service_account_key) инициализировать_приложение (кредит) ведро = хранилище.ведро() def fetch_data_from_api(auth_key, base_url,lastModTsBgn,lastModTsEnd, result_type, page_index, page_size): пытаться: url = f"{base_url}?authKey={auth_key}&pageIndex={page_index}&pageSize={page_size}&lastModTsBgn={lastModTsBgn}&lastModTsEnd={lastModTsEnd}&resultType={result_type}" ответ = запросы.получить (URL) если ответ.код_статуса != 200: print(f «Не удалось получить данные из API (код состояния: {response.status_code})», file=sys.stderr) возврат Нет вернуть json.loads(response.text) кроме исключения как e: print(f"Произошла ошибка при получении данных из API: {str(e)}", file=sys.stderr) возврат Нет Защиту save_data_to_storage(dataframe, Storage_path): пытаться: csv_buffer = io.StringIO() dataframe.to_csv(csv_buffer, index=False) # переход в двоичный формат csv_bytes = csv_buffer.getvalue().encode('utf-8-sig') # загрузить в хранилище Firebase blob = ведро.blob(путь_хранилища) blob.upload_from_string(csv_bytes, content_type='text/csv') print(f"CSV-файл сохранен в хранилище Firebase: {storage_path}") кроме исключения как e: print(f «Произошла ошибка при сохранении данных в Firebase Storage: {str(e)}», file=sys.stderr) защита Process_page (page_data): пытаться: filtered_data = [] body = page_data['result']['body']['rows'][0]['row'] для данных в теле: if data.get('opnSfTeamCode') == 3740000 и (data.get('trdStateNm') == '휴업' или data.get('trdStateNm') == '폐업'): filtered_data.append(данные) вернуть фильтрованные_данные кроме исключения как e: print(f"Произошла ошибка при обработке страницы: {str(e)}", file = sys.stderr) defcollect_data(auth_key, base_url,lastModTsBgn,lastModTsEnd, result_type, page_size, num_pages_to_fetch): filtered_dataset = [] пытаться: для page_index в диапазоне (1, num_pages_to_fetch + 1): response_data = fetch_data_from_api(auth_key, base_url,lastModTsBgn,lastModTsEnd, result_type, page_index, page_size) если response_data не имеет значения None: filtered_dataset.extend(process_page(response_data)) вернуть фильтрованный_набор_данных кроме исключения как e: print(f"Произошла ошибка при сборе данных: {str(e)}", file=sys.stderr) def get_total_pages(auth_key, base_url,lastModTsBgn,lastModTsEnd, result_type, page_size): пытаться: url = f"{base_url}?authKey={auth_key}&pageIndex=1&pageSize={page_size}&lastModTsBgn={lastModTsBgn}&lastModTsEnd={lastModTsEnd}&resultType={result_type}" ответ = запросы.получить (URL) если ответ.код_статуса != 200: print(f"Не удалось получить данные из API (код состояния: {response.status_code})") вернуть 0 # или любое другое подходящее значение данные = json.loads(response.text) total_count = данные['result']['header']['paging']['totalCount'] total_pages = total_count // размер_страницы если total_count % размер_страницы > 0: всего_страниц += 1 вернуть всего_страниц кроме исключения как e: print(f"Произошла ошибка при получении общего номера страницы: {str(e)}", file = sys.stderr) # период последний день = datetime.today() - timedelta(days=0) Maximum_days_ago = datetime.today() - timedelta(days=7) последний день_стр = последний день.strftime('%Y%m%d') Maximum_days_ago_str = Maximum_days_ago.strftime('%Y%m%d') # собирать данные auth_key = "удален" base_url = "http://www.localdata.go.kr/platform/res ... penDataApi" LastModTsBgn = Maximum_days_ago_str LastModTsEnd = последнийдень_стр размер_страницы = 500 тип_результата = "json" путь_хранилища = "newData/extracted_values.csv" num_pages_to_fetch = get_total_pages(auth_key, base_url, LastModTsBgn, LastModTsEnd, result_type, page_size) refiltered_dataset =collect_data(auth_key, base_url,lastModTsBgn,lastModTsEnd, result_type, page_size, num_pages_to_fetch) # в фрейм данных keys_to_extract = ['영업상태명', '폐업일자', '사업장명', '좌표정보(x)', '좌표정보(y)', '도로명전체주소'] извлеченные_значения = {ключ: [] для ключа в ключах_to_extract} для данных в refiltered_dataset: для ключа вkeys_to_extract: извлеченные_значения[ключ].append(data.get(ключ)) извлеченный_df = pd.DataFrame(извлеченные_значения) new_columns = ['영업상태명', '폐업일자', '사업장명', '좌표정보(x)', '좌표정보(y)', '도로명전촣소'] извлеченный_df.columns = новые_столбцы # удалить Н/П для столбца в извлеченном_df.columns: извлеченный_df = извлеченный_df[extracted_df[столбец] != ''] # Сброс индекса извлеченный_df.reset_index(drop=True, inplace=True) # Сохраняем CSV-файл в хранилище Firebase. save_data_to_storage (extracted_df, путь_хранилища) print("Файл CSV сохранен в Firebase Storage:", Storage_path) # бегать Collect_and_save_data_to_firebase_storage() firebase.json
{ "пожарная лавка": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "функции": [ { "источник": "функции", "кодовая база": "по умолчанию", "игнорировать": [ "венв", ".git", "firebase-debug.log", "firebase-debug.*.log" ] } ] }
и я создал файл function.yaml, потому что он вызывает ошибку.

functions.yaml

specVersion: 1 версия: 1 функции: Collect_and_save_data_to_firebase_storage: имя: Collect_and_save_data_to_firebase_storage время выполнения: python312 триггер: пабсаб источник: main.py requirements.txt
firebase-functions~=0.1.0 запросы~=2.31.0 панды~=2.2.1 firebase-admin~=6.4.0 google-cloud-storage~=2.14.0

Вернуться в «Python»