ジョギング
ヤフオクドームリレーマラソン
- 会社の有志で参加
- 普段は会社でしか会わないメンバーとタスキをつなぐことが出来て本当に楽しかったし, 貴重な体験となった
- 参加してくださったメンバーに感謝
- 結果は 3 時間 6 分 12 秒, もうすぐサブスリー!
- お楽しみの反省会は西新にて 14 時過ぎから乾杯して, 夜 20 時にお開きとなったので走った時間よりも反省会をしていたことなる... (まあ, それはそれで良い!
- また, 来年も機会があれば参加したい
amiCtrl を作った時からやりたかったのが, AMI 名で出力を絞り込んだり, 過去 N 日より以前の AMI を削除する機能を付けたかったので...引き続きもくもく.
以下のような使い方を想定している.
$ go run amiCtrl.go -profile=dummy_profile -region=us-east-1 -endpoint=http://192.168.0.100:5000 --prefix=image77777 +-----------------+--------------+-----------+--------------------------+---------------+ | AMI NAME | AMI ID | STATE | CREATION DATE | SNAPSHOT ID | +-----------------+--------------+-----------+--------------------------+---------------+ | test-image77777 | ami-7e091be4 | available | 2019-09-21T14:34:35.000Z | snap-ce57c659 | + +--------------+ +--------------------------+---------------+ | | ami-647697cc | | 2019-09-21T22:26:53.000Z | snap-058e29f7 | + +--------------+ +--------------------------+---------------+ | | ami-4a94ebc3 | | 2019-09-22T09:43:57.000Z | snap-c3a85851 | + +--------------+ +--------------------------+---------------+ | | ami-6f8ae992 | | 2019-09-22T09:44:46.000Z | snap-6572e311 | + +--------------+ +--------------------------+---------------+ | | ami-5645c327 | | 2019-09-22T09:50:09.000Z | snap-05ff77e4 | + +--------------+ +--------------------------+---------------+ | | ami-bfc73dd1 | | 2019-09-22T09:54:12.000Z | snap-5bd605b8 | +-----------------+--------------+-----------+--------------------------+---------------+
雑なコミットメッセージになってしまったけど, 内部の処理を自分なりに大きく変更してみた. 大きな気づきだったのは, 以下のように DescribeImages
のレスポンスに AMI に含まれている Snapshot ID が含まれていたこと.
{ Architecture: "x86_64", BlockDeviceMappings: [{ DeviceName: "/dev/xvda", Ebs: { DeleteOnTermination: true, Encrypted: false, SnapshotId: "snap-12345a67a890123d", VolumeSize: 40, VolumeType: "gp2" } }], CreationDate: "2018-07-27T01:30:55.000Z", Description: "description", EnaSupport: true, Hypervisor: "xen", ImageId: "ami-a1234567", ImageLocation: "xxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx", ImageType: "machine", Name: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", OwnerId: "123456789012", Public: false, RootDeviceName: "/dev/xvda", RootDeviceType: "ebs", SriovNetSupport: "simple", State: "available", VirtualizationType: "hvm" }
これで, わざわざ DescribeSnapshots
する必要がなくなった.
夕方くらいから風と雨が激しくなってきた. 明日はヤフオクドームリレーマラソンなのに...
amiCtrl をギョームで利用しようとしたら異常に遅かったので調べたら非常に効率が悪かったので改修した. もう少しテストをしたらリリースをしたいと思う.
お仕事だった.
雰囲気で書いてしまっていた Go 言語をちゃんと習得したくて参加した. 目から鱗なことが多々あり参加して本当に良かった.
講師の @qt_luigi さんのお話と資料がとてもわかりやすくて勉強になった. ただ, まだまだ修行が必要であることを痛感した.
幾つかメモ.
// 宣言 1 var example []string // 宣言 2 example = []string { "aaa", "bbb", }
package main import "fmt" func main() { var i int var s string var b bool fmt.Printf("%#v %#v %#v", i, s, b) }
このコードを実行すると, 以下のように出力される.
$ go run main.go 0 "" false
int
型の初期値は必ず 0
, string
型の初期値は必ず ""
, bool
型の初期値は必ず false
となる.
また、改行またはファイルの終わりは、セミコロンが自動挿入されるトリガとなります。 正式な文法としては、ステートメントの終端としてセミコロン";"を使います。ただしGo言語のプログラムでは下の2つの規則を用いてセミコロンの大部分を省略できます:
http://golang.jp/go_spec より引用.
以下, 受講メモ.
手書きだと印象に残りやすいかもしれない.
奥さんが先日煮込んでくれた豚角煮. とても美味しかった.