エラーでタブロー記号クラウドファイル名を指定して実行時に展開されたサービスにリクエストを送信します

ポールBurciaga:

私はGoogleクラウドランでフラスコのサービスを使用してタブローServer用のカスタムプロビジョニングサービスを開発しました。私はGoogleの私にサービスを展開するドッキングウィンドウコンテナを使用しました。

私はクラウドランで展開サービスに要求を送信するときしかし、私は以下のエラーを取得し、郵便配達してローカルでコンテナを実行すると、サービスが正常に動作します。

<title>requests.exceptions.ConnectionError: HTTPConnectionPool(host='<mytableauserver.com>', port=80): Max retries
        exceeded with url: /api/2.4/serverInfo (Caused by NewConnectionError('&lt;urllib3.connection.HTTPConnection
        object at 0x3ed0efc890d0&gt;: Failed to establish a new connection: [Errno 111] Connection refused')) //
        Werkzeug Debugger</title>

app.py

import os
import logging
from flask import Flask, jsonify, request
import provisioning

# Change the format of messages logged to Stackdriver
logging.basicConfig(format='%(message)s', level=logging.INFO)

app = Flask(__name__)

@app.route('/api/adduser', methods=['POST'])
def add():
    return jsonify(provisioning.add(request.json))

@app.route('/api/removeuser', methods=['POST'])
def remove():
    return jsonify(provisioning.remove(request.json))

@app.route('/', methods=['GET'])
def hello():
    return jsonify({'message' : 'Hello API'}) #Test Endpoint

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0', port=int(os.environ.get('PORT', 80)))

provisioning.py

import sys
import json
import tableauserverclient as TSC
import re


def sign_in(sitename):
    tableau_auth = TSC.PersonalAccessTokenAuth(
        token_name='<token_name>', personal_access_token='<token>', site_id=sitename)
    server = TSC.Server(
        server_address='<http://mytableauserver.com>', use_server_version=True)
    #server.add_http_options({'verify': False})
    server.auth.sign_in(auth_req=tableau_auth)
    return server  

def add(json_request):
    site = json_request["sitename"])
    session = sign_in(site) # Here is where the process fails
    site_role = json_request["rolename"]
    user = add_user_to_site(session, json_request, site_role)
    add_user_to_group(session, user, json_request)
    return json.dumps(json_request)

more code...

Dockerfile

FROM python:3.8

ADD app.py /
ADD provisioning.py /

RUN pip install tableauserverclient
RUN pip install Flask

CMD [ "python", "./app.py" ]

どのような奇妙に思えることは、私は最初の試み(私は推測)で、ローカルサーバーにサインインすることができますが、クラウドの実行に到達しようとすると、失敗するまで複数回を試しているように見えるという事実です。私はすべてのコンテナで同じコードを使用します。

gso_gabriel:

エラーや類似事例に基づきます:

新しい接続を確立できませんでした:[errnoが111]接続)) 'を拒否しました

あなたのPythonクライアントがあなたのクラウドを実行して、あなたのタブローサーバーに接続できないようです。記事ごとのようなぜ私は自分のアプリケーションログで[errnoが111]の接続を拒否したエラーを取得していますか?

どちらのエージェントが実行されていない、またはアプリケーションのトレーサークライアントが正しく構成されていません。これは、アプリケーション・コンテナ・ポイントに隣接したいくつかのドッカーコンテナであなたのエージェントがlisten-おそらくされて、それのリスニングでない場合はデフォルトでは、トレーサーのクライアントライブラリは、ポート8126.上のローカルホストに提出し、それが実行している場合には、例えばtracer.configureにごトレーサークライアント(ホスト名= "172.17.0.1")。

このエラーの似たようなケースで検索、私はそれを見てみることをお勧めだろうと、このエラーのいくつかの解決策を見つけることができます。

情報があなたを助けている場合、私に教えてください!

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=285182&siteId=1