2017-03-01 10 views
0

私は企業のファイアウォールがpythonとgoogle cloudの間の通信をブロックしていると私は思っています。ターミナルで次のように入力した後企業のファイアウォールの背後にあるGoogleの雲を認証する

gcloud auth application-default login 

私のブラウザが正常に自分のGoogleアカウントにログインするために開きます。私がログインした後、しかし、私は私が私たちのファイアウォールに例外を追加するために、私のIT部門に連絡する必要があると考えてい

ERROR: There was a problem with web authentication. Try running a 
gain with --no-launch-browser. 

ERROR: (gcloud.auth.application-default.login) Could not reach th 
e login server. A potential cause of this could be because you ar 
e behind a proxy. Please set the environment variables HTTPS_PROX 
Y and HTTP_PROXY to the address of the proxy in the format "proto 
col://address:port" (without quotes) and try again. 
Example: HTTPS_PROXY=https://192.168.0.1:8080 

を取得します。誰かがGoogle Cloudの自然言語処理APIのアドレス/ポートを知っていますか?

答えて

2

あなたの質問に直接お答えすることはできませんが、私はあなたの問題を解決するかもしれない一般的なガイダンスを提供することができます。

コマンド

gcloud auth application-default login 

は、ローカルでのサンプルコードを実行するための便利なヘルパーですが、それは本当に、様々な理由のための最高の認証戦略ではありません。それは常にすべてのあなたのクォータを持っていない特別なクライアントIDを使用します。

APIを使用することをお勧めする方法はサービスアカウントです。クラウドコンソールでAPIアカウント情報を作成し、JSONキーをダウンロードすることができます。次に、ファイルを指すように環境変数GOOGLE_APPLICATION_CREDENTIALSを設定すると、アプリケーションのデフォルトの資格情報(ほとんどのサンプルとクライアントライブラリが使用する)を使用していると仮定して自動的に動作します。

App EngineとCompute Engineで(正しいスコープでVMを作成したと仮定します)サービスアカウントはデフォルトで存在しているため、JSONをダウンロードして環境変数を設定する必要はありません。

APIを使用できるもう1つの方法は、APIキーを作成するだけです。その後、URLの末尾に?key=api-keyというHTTPエンドポイントを付けます。 APIキーも理想的ではありません(クライアントが誰で、スコープがないかはわかりませんが)、シンプルなオプションです。

あなたの場合は、JSONサービスアカウントキーと環境変数を使用することをおすすめしますが、公式authentication guideを読む価値があります。

+0

サービスアカウントを使用することを提案しましたが、「... URLの最後に?key = api-keyでHTTPエンドポイントにヒットしますか? Googleのクラウドコンソール内にAPIキーが正常に生成されました。今では端末に移動して何かを変更する必要がありますか?それとも、これはPythonの設定ですか? – Lee88

+1

@ Lee88 apiキーの使用方法は、説明したようにHTTP/RESTエンドポイントに当たったときにapiキーをURLパラメータとして追加することです。たとえば、エンドポイントにヒットし、APIキーをURLパラメータとして設定するリクエストなどの通常のHTTPクライアントパッケージを使用できます。しかし、通常、あなたはPytonクライアントライブラリを使用します。 google-api-python-client(古い汎用API)を使用している場合は、service.build()でdeveloperKey = api-key引数を使用します。 google-cloud-python(現代のクライアント)を使用している場合は、APIキーをサポートしていません。どうして? APIキーは実際に言及したように素晴らしいアイデアではないので、それらは落胆します。 –

+0

サービスアカウントが最も細かいアクセス制御を持っており、頭痛を与える可能性が最も低いサービスアカウントがある場合、 APIキーは、カールなどで邪魔している場合に最も便利です。 –

関連する問題