概要
Terraformを使う上で、DBなどのデータ系のリソースはそうそう変更することはないので、オペミスなどを防ぐために別ディレクトリに分けておくと安心です。
しかし既に作ってしまっていた場合、*.tf
とともにその部分のterraform.tfstate
を移動しなくてはいけないですが、手動でterraform.tfstate
をいじるのは非常に大変です。
そこで使えるのがstate mv
というコマンドです。
環境
- Terraform 0.10.2
過去の記事で
を書いた時に、AngularのInjector
とProvider
とDependency
の関係を理解していないとよく分からないと思ったので追記的にまとめます。
結論から言うと、以下のように考えるとすっきりします。
項目 | 役割 |
---|---|
Injector | 料理人 |
Provider | レシピ |
Dependency | 料理 |
クライアントからのAPIコールは可能であれば避けた方がサーバの負荷も下がり、ユーザの体感速度も上がります。
1度取得すればほぼ変わらないデータなどは、最初にAPIコールした後はできれば避けたいです。
一方でcookieやlocalstorageで管理するほどでもない、というときはBehaviorSubjectを利用します。
BehaviorSubjectの大きな特徴は直前にonNext
で渡された値を保持し、subscribe()
やgetValue()
するとその保持していた値を取得できるところです。
ref: ReactiveX - Subject
続きを読むAlpineベースのイメージが軽量イメージとして認知されていますが、Goの場合は単一バイナリで動くのでイメージ内にgolangが入っている必要はありません。
なので最も軽量と言われているScratch imageを利用することで、dockerイメージを軽量化することができます。
以下のファイルを扱うことにします。
package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { resp, err := http.Get("https://google.com") if err != nil { fmt.Println(err) os.Exit(1) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println(len(body)) }続きを読む
Angular 4.3からこれまでのHttpModuleに代わってより軽量かつ使いやすいHttpClientModuleと言うものが出てきました。
今回はその移行作業を書きます。
今回の成果物は以下です。 github.com
続きを読む