aws-sdk-go の変更に対応した話 その2 #aws #golang #jawsug
寒い時期に↓なツールを作り
春の時期に↓な変更に対応してみたのですが
その後さらに↓のような発表がありました
Developer Preview of AWS SDK for Go is Now Available | AWS Official Blog
https://aws.amazon.com/jp/blogs/aws/developer-preview-of-aws-sdk-for-go-is-now-available/
ついに AWS公式のDeveloper Preview 版のリリースとなりました!これに伴いリポジトリもawslabs/aws-sdk-goから↓に変更になっています
正式リリースに向けて修正・追加が活発に行われているので今後も楽しみです!
ですが・・・当然ながら色々と変更しないとビルドが通らないので今回も修正していきます
今回の変更は以下の部分になります
まず単純な置き換えからスタートで、awslabsではなくなったのでimport文を修正するところから
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/rds"
)
今回の変更で一番影響が出たのが credential 周りの変更ですね。今までは
に aws.Creds や aws.DetectCreds などがありましたが、今回からは
という形に分離され、 DetectCreds のような便利メソッドは無くなってる感じ
Package: credentials — AWS SDK for Go
http://docs.aws.amazon.com/sdk-for-go/api/aws/credentials.html
当然便利だったので使ってたりしたので、この部分を修正することに。DetectCreds は
- input variable
- Environment variable
- /.aws/credentials
- IAM Role
の順で評価して credential 情報がOKなところでいい感じに値が戻ってきたのですが、よくよく考えると確かに /.aws/credentials ファイルの情報をプロファイル指定なしで利用するのはマズイ気がしますね・・・なので今回の修正では
- input variable
- Environment variable
- IAM Role
/.aws/credentials ファイルの情報を利用しないこととして、上記の順で評価していくように変更を加えた
rds-try/config/config.go 中の GetAWSCreds() で処理を行っている
番外編
これで今回の aws-sdk-go の変更に対応分は終わりなのだが、設定変更していないにも関わらず何故か travis ci でのテストが上手く通らず・・・失敗しているのは golint の部分で当然何の変更もなし
色々悩んで travis.yml を何回もコミットして試すがいい感じにならず・・・ci 試すためにコミットって微妙だなーと感じたんですが、こういう場合はどうするのが正解なんでしょうかねぇ?
ブランチ切ってそっち側で色々試せばよかったなぁーと後から思ったりはしましたが・・・
で、どうにもならないので手元で golint をかけて見ると・・・出るじゃありませんか!エラーが!なんでだろうなぁ?と思ってたら
あーあーSQLって文字が対象に追加されてますねぇーなるほどなぁーと。チェックする側の更新っていうところに全然発想が行かなかったので良い経験になりました。
こちらもSql から SQL に変更して無事に travis ci でのテストが通過するようになりました。
そしてコミットメッセージをtypoしてるし・・・
新しいサービスも続々追加されているのでそれに対応した状態でのaws-sdk-go の正式リリースが楽しみですね!
以上