API GatewayをGolangで作成する方法について調べてみた
AWSのLambdaは現時点ではGolangは公式にサポートされていないです。
ということで、サーバレスなAPIをGolangで作成する方法について調べてみました。
いくつかの方法がありましたが、結果的には以下の記事にある方法が、自分には一番分かりやすかったです。
https://developer.capitalone.com/blog-post/building-a-serverless-rest-api-in-go/
やり方としては
となります。
ほぼこの記事の方法で出来たのですが、いくつか引っかかったところがあったのでメモっておきます。
- Lambdaについてはサンプルソースが以下のgithubで公開されているので、それを使う。
- project.jsonのrole、profileは適切なものを設定する。
- デプロイコマンドは以下のようにprofile、regionを指定する。
- $ apex deploy --profile default --region ap-northeast-1
- デプロイ時に「Error: function apis: NoCredentialProviders: no valid providers in chain. Deprecated.」というエラーが出た。
- デプロイ前に以下のコマンドを実行する。
- $ export AWS_SDK_LOAD_CONFIG=1
- 参考サイトはこちら。https://qiita.com/shirakia/items/bcd54a1f82ceb69a645a
珠玉のプログラミング 第一部の問題をやってみて
珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造
- 作者: ジョン・ベントリー,小林健一郎
- 出版社/メーカー: 丸善出版
- 発売日: 2014/02/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
以下、チラ裏レベルの感想などなど。。。
- コラム1
- 数値をビット列にした場合の扱いやすさが印象的だった。golangで実装したので、ビット列はbyteのスライスにしたが。
- 「ビット列は『限られた範囲内にあり、密で、重複がなく、付随する情報も無いようなデータのセット』を表すのに有効」。
- 回答とはだいぶ異なる実装となった。
- コラム2
- 「名前の印(シグナチャー)」と二分探索木の有効性が良く分かった。
- 生データからプログラム内で扱い易い形の「シグナチャー」を生成して、シグナチャーを参照して検索を行う、という流れは、一つのパターンとして覚えておきたい。(今までも無意識で行っていたけど・・・)
- コラム3
- データ構造の重要性について説明している。この事については、常々意識している。
- コラム4
- コラム5
- この辺りの問題も、今の時代だとユニットテストを導入することで解決を図るかな・・・、と。
解いたソースはこちらです。
GitHub - SrcHndWng/go-learning-programming-pearls at part-1.0.0
SourceTreeで別アカウントのリポジトリにPushする方法
タイトルにあるように、SourceTreeで普段使っているのとは別のアカウントのGitにpushする方法についてです。
なお、SourceTreeのMac版での話となります。
- 右上の「設定」を押下し、「リモート」タブを選択する。
- 「追加」を押下し、「リモートの名前」「URL/パス」を入力する。「URL/パス」には「https://ユーザ名@github.com/・・・」となるようにする。ユーザ名をURLに入れると、下の「ユーザ名」欄に自動的に表示される。
- 「高度な設定」タブを選択する。
- 「グローバルユーザー設定を使う」のチェックボックスを外し、「名前」「メールアドレス」を入れる。「メールアドレス」を入れないと、使用しているマシンのユーザ名がコミット時に使用されてしまうようです。
以上です。
Visual Studio CodeでGo言語(golang)のユニットテストをデバッグする
タイトルにあるように、Visual Studio CodeでGolangのユニットテストを実行してデバッグする方法についてです。
とは言っても、ほとんどデバッグ時の設定手順と同じですが・・・。
デバッグ時の設定手順
- メニューバーの「Debug」より「Open Configurations」か「Add Configurations」を選ぶ。
- launch.jsonが開く。
- 「mode」の値を「test」に変更して保存する。
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "test",
- F5を押し、デバッグを実行する。
以上です。
Visual Studio CodeでGo言語(golang)のユニットテストを実行する
例によって忘れないための備忘録です。
Visual Studio CodeにGo with Visual Studio Codeが入っていることが前提です。
Visual Studio CodeでGo言語(golang)のデバッグをするときの設定
タイトルの件について、いつも忘れるからメモ。
Visual Studio Codeのバージョンによって違うかも。
A Tour of Goをやってみた(1)
前から気になっていたA Tour of Goをやり始めました。
初日は「welcome」から「Flow control statements: for, if, else, switch and defer」をやってたのだが、その感想を月並みだが箇条書きで書いてみます。
- 電車の中でiPadでやっていたので、ブラウザ上でコードを記述して実行できること。
- 今の所、構文が分かりやすい。ループがforのみである事などに、構文を限定しようとする思想を感じる。
- かなり分かりやすい英文で書かれているように思える。(有名な技術系のドキュメントは大抵そうだけど・・・)
昨今(いや、昔からか・・・?)、プログラマになるには英文が〜・・・、と言われるけど
- 英文の分かりやすさ
- 開発環境構築しなくても試せる
- 構文がry
などの理由から、未経験者にプログラムとはこんなものだよー、と体験してもらうのに
ちょっとイイかもなどと思いました。