Я создал кластер Google Cloud BigTable в своем проекте. Основная база кода для проекта работает в стандартной среде Python App Engine, которая не может использовать библиотеку gcloud-python из-за зависимости от grpcio. Чтобы обойти это, я настроил службу гибкой среды App Engine для Python в рамках одного и того же проекта и написал очень простой сервер Flask для запуска на нем, который затем можно удалить из моей стандартной среды. Код выглядит примерно так:Ошибка, не прошедшая проверку подлинности с использованием gcloud-python для подключения к Google bigtable
from gcloud import bigtable
app = Flask(__name__)
client = bigtable.Client(project=bigtable_config.PROJECT_ID, read_only=True)
cluster = client.cluster(bigtable_config.ZONE_ID, bigtable_config.CLUSTER_ID)
table = cluster.table(bigtable_config.TABLE_ID)
@app.route("/query/<start_key>/<end_key>")
def run_query(start_key, end_key):
if not client.is_started():
client.start()
row_data = table.read_rows(start_key=start_key, end_key=end_key)
row_data.consume_all()
// do some stuff to the row data here, get results
return jsonify(results)
Я могу запустить этот код локально, и он отлично работает. Я могу развернуть его на службу, и он продолжает работать отлично. Тем не менее, если служба простаивает в течение некоторого периода времени (я обычно это заметил после того, как около часа), то каждый запрос я делаю начинает сбиваться с этой ошибкой:
NetworkError(code=StatusCode.UNAUTHENTICATED, details="Request had invalid authentication credentials.")
Если я перераспределить службу, ее снова начинает работать. Я не наблюдаю этого поведения, когда я запускаю службу локально.
Что я делаю неправильно? Я предполагаю, что ошибаюсь в настройке клиента, где он неправильно использует учетные данные для приложения. Нужно ли мне убивать клиента и перезапускать его, когда я сталкиваюсь с этой ошибкой?
Вчера вечером мы выпустили обновленный клиент Python для PyPi 0.17.0. Он был существенно обновлен. –
Для этой проблемы существует проблема https://github.com/GoogleCloudPlatform/gcloud-python/issues/1917. –
Удивительно, я буду следить за обновлениями. –