2016-06-23 2 views
1

Я создал кластер 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.") 

Если я перераспределить службу, ее снова начинает работать. Я не наблюдаю этого поведения, когда я запускаю службу локально.

Что я делаю неправильно? Я предполагаю, что ошибаюсь в настройке клиента, где он неправильно использует учетные данные для приложения. Нужно ли мне убивать клиента и перезапускать его, когда я сталкиваюсь с этой ошибкой?

+0

Вчера вечером мы выпустили обновленный клиент Python для PyPi 0.17.0. Он был существенно обновлен. –

+1

Для этой проблемы существует проблема https://github.com/GoogleCloudPlatform/gcloud-python/issues/1917. –

+0

Удивительно, я буду следить за обновлениями. –

ответ

Смежные вопросы