1
gcloud auth print-access-tokenとなっアクセストークンイムは明らかに私はいくつかの基本的なPythonコードを得ることができるものとは異なるアクセストークンです

ドッキングウィンドウの画像を一覧表示する/のpythonでGCRアクセストークンを取得する:私は何どのよう

export GOOGLE_APPLICATION_CREDENTIALS=/the-credentials.json 
from oauth2client.client import GoogleCredentials 
credentials = GoogleCredentials.get_application_default() 
credentials.get_access_token() 

やろうとすることで機能するであろうトークンを取得することです:

curl -u _token:<mytoken> https://eu.gcr.io/v2/my-project/my-docker-image/tags/list 

私は宣誓のGoogleの資格情報

経由トークンprogrmaticallyのアクセスを得るために、私の試み、したがって、私のアプリのための依存関係としてのgcloudユーティリティをインストールしないことを好むだろう
+0

を - ドを私たちは_トークンステップを容易にするために、膨大なgcloudユーティリティをインストールする必要がありますか?確かに別の方法があります... – spechter

答えて

2

だから私はいくつかの質問があると思います。GoogleCredentials.get_application_default対

gcloud auth print-access-token()

gcloudは「gcloud auth loginを実行するときにはもうデフォルトではアプリケーションのデフォルトの認証情報を設定し、そうaccess_tokenはあなたはありませんgcloud auth print-access-tokenからの再取得は、あなたがログインに使用したものに対応するものになります。

instructionsに従ってサービスアカウントのADCを作成する場合、そのアカウントにはthe necessary permissionsがあり、スクリプトを実行している環境ではENV varおよびadc.jsonファイルにアクセスできます。良い。ドッカーレジストリAPIは、トークン交換が短命ベアラトークンのためのあなたの基本的な認証(すなわちAuthorization: Basic base64(_token:<gcloud_access_token>))を交換する、起こるべきことを指定しcurl仕事

にする方法

。このプロセスは少し複雑ですが、here under "How to authenticate" and "Requesting a Token"と記載されています。 auth.docker.io/tokeneu.gcr.io/v2/tokenservice=registry.docker.ioと置き換えます。service=eu.gcr.ioなどです。curl -u oauth2accesstoken:<mytoken>をここで使用してください。

も参照してください:How to list images and tags from the gcr.io Docker Registry using the HTTP API?

私たちはあなたのニーズに関連するかもしれないPythonのlibに持っている疑問に完全

避けてください:私は基本的に同じ質問を持っている https://github.com/google/containerregistry

+0

こんにちは、残念ながら私はこの応答が非常に有用であると思っていません。パート1は私が従っていて問題がなかったことを説明しています。 第2部では、プロセスが関与することができ、一連の置換やクエリを実行すると解決策があることを示しています。 最後に、文書化されていない「lib」を参照します。説明もユースケースも、何もありません。ちょうど "コードを読んでください - あなたが知りたいと思えば - それが何であるか"。 Idはこれで-1を押しますが、imはあまりにも低いrep :( –