私はaws-sdk-goを使用してdynamodbと通信するGoプログラムを持っています。依存関係が派生しています。 1.7.1に進みます。 aws-sdk-goバージョン1.6.24。以下のすべての環境で期待どおりにプログラムが動作します:シェルからの私のdevのボックス(ドッカー1.13.1) kubernetes/CoreOSで無効なヘッダーフィールドの値
- のdevのボックス(アーチのLinux)
- ドッカコンテナ(Ubuntuの16.04)
私はkubernetesにドッカコンテナ(私は私のdevのボックスでテストと同じもの)を実行すると、私は次のエラーを取得:
2017/03/02 22:30:13 DEBUG ERROR: Request dynamodb/GetItem: ---[ REQUEST DUMP ERROR ]----------------------------- net/http: invalid header field value "AWS4-HMAC-SHA256 Credential=hidden\n/20170302/us-east-1/dynamodb/aws4_request, SignedHeaders=accept-encoding;content-length;content-type;host;x-amz-date;x-amz-target, Signature=483f56dd0b17d8945d3c2f2044b7f97e531190602f132a4d5f828264b3a2cff2" for key Authorization ----------------------------------------------------- 2017/03/02 22:30:13 DEBUG: Response dynamodb/GetItem Details: ---[ RESPONSE ]-------------------------------------- HTTP/0.0 000 status code 0 Content-Length: 0を基づき
:
https://golang.org/src/net/http/transport.go
https://godoc.org/golang.org/x/net/lex/httplex#ValidHeaderFieldValue
問題はヘッダ値の検証であり、まだ私はそれが私のK8Sクラスターを除いてどこでも働く理由を理解するために途方に暮れていますように見えます。クラスタは、最新のCoreOS stable ami(CoreOS stable 1235.8.0)を実行するEc2インスタンスで構成されています。
私の開発マシンで動作するドッカーイメージはスクラッチベースです。トラブルシューティングをするには、私はUbuntuに基づいた画像を最新のものにしました。ちょうどdynamodbから簡単な項目を取得します。このイメージがk8sクラスタ上で実行され、プログラムが対話型シェルから実行されると、同じエラーが発生します。私はこのenvからdynamodbエンドポイントをpingできることを確認しました。
私はこの問題のトラブルシューティングに苦労しています。私は何か愚かなことをここに逃していますか?誰かが正しい方向に私を向けることができますか、何が起こっているのアイデアを持っている?
投稿のために整頓される前に '\ n'がヘッダにありました。私はそれがk8s環境にのみ挿入されているのは奇妙だと思うだろうが(他のものはすべて同じでなければならない(特にドッカーの配置を考えると)そうだが、それは私が追跡するリードだ! – SjB
ファイルからk8sシークレットを作成すると、シークレットデータの後ろに\ nが追加され、シークレットデータがヘッダーに挿入されました。 – SjB