Я развертываю облачную функцию Python Google (Gen2) (недавно переименованную в функцию Cloud Run), которая прекрасно работает с той же структурой и логикой до изменений, но сейчас просто не работает.
И я проверил, что сервер отлично работает локально 8080. Но при попытке развертывания в облаке происходит сбой. Эта функция представляет собой простую конечную точку HTTP, которая действует как веб-перехватчик:
она срабатывает, когда мои службы вызывают эту конечную точку, а мой веб-перехватчик выполняет некоторые действия Firebase и возвращает ответ JSON.
Локально:
functions-framework --source main.py --target hi_kata --debug
* Serving Flask app 'hi_kata'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:8080
* Running on http://10.241.125.3:8080
Постоянно появляется эта ошибка и ничего больше...
message=Не удалось создать или обновить Kata службы Cloud Run -v3, проверка работоспособности контейнера не удалась. Версия '' не готова и не может обслуживать трафик. Контейнер, предоставленный пользователем, не удалось запустить, и не удалось прослушать p. Версия '' не готова и не может обслуживать трафик. Предоставленному пользователем контейнеру не удалось запуститься и прослушать порт, определенный переменной среды PORT=8080, в течение выделенного времени ожидания. Это может произойти, если порт контейнера настроен неправильно или время ожидания слишком мало. Тайм-аут проверки работоспособности можно продлить. Журналы этой версии могут содержать дополнительную информацию.
И видел это в облачных службах запуска:
Обратная трассировка (последний вызов — последний):
. ( /layers/google.python.pip/pip/bin/functions-framework:8 )
Вот моя структура вкратце:import os
import json
from flask import Flask, jsonify
import functions_framework
from google.oauth2 import id_token
from google.auth.transport import requests
import firebase_admin
from firebase_admin import credentials, firestore, db
from openai import AzureOpenAI
firebase_admin.initialize_app()
db_fs = firestore.client()
def some_function():
pass
def some_function1():
pass
@functions_framework.http
def hi_kata(request):
try:
auth_header = request.headers.get('Authorization')
if not auth_header:
print("Missing Authorization header")
return 'Unauthorized - Missing token', 401
id_token_str = auth_header.split(' ')[1]
# My auth Logic here
audience = " "
# Auth token
try:
id_info = id_token.verify_oauth2_token(
id_token_str,
requests.Request(),
audience
)
print(f"Token verified for user: {id_info.get('email', 'unknown')}")
except ValueError as e:
print(f"Token verification failed: {str(e)}")
return 'Unauthorized - Invalid token', 401
# Steps 2.
request_json = request.get_json(silent=True)
if not request_json:
return 'No request data provided', 400
try:
# ....
return jsonify(response_to_my_function), 200
except KeyError as e:
print(f"Missing required field: {str(e)}")
return f'Invalid request format: missing {str(e)}', 400
except Exception as e:
print(f"Unexpected error: {str(e)}")
return 'Internal server error', 500
мой Requirement.txt (версия Python 3.11)
functions-framework==3.8.2
google-cloud-secret-manager==2.16.3
Flask==2.2.5
google-auth
google-auth-httplib2
firebase-admin ==6.5.0
google-cloud-firestore==2.16.0
Подробнее здесь: https://stackoverflow.com/questions/793 ... -start-and
Функция Cloud (Run) не запускается при Cloud Run — контейнер не удалось запустить и прослушать порт = 8080 после недавне ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Веб -сервер не удалось запустить. Порт 8080 уже использовался. Spring Boot Microservice
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Веб -сервер не удалось запустить. Порт 8080 уже использовался. Spring Boot Microservice
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-