Algolia社内のSlackでk-yomoさんのTerraform Provider Algoliaが使われているのを見かけて、これは自分も試さねばということで。
Terraformのバージョン
年単位でTerraform使ってなかったので、tfenvで1.0.10入れてuseしました…
$ terraform --version
Terraform v1.0.10
on darwin_amd64
AlgoliaのAPI Keyを準備
Indexを作る権限のあるAPI Keyをexportしておきます。
$ export ALGOLIA_API_KEY=hogehoge
AlgoliaのApplication ID
Algoliaにはアプリケーションという概念があって、それぞれにID(app_id)が付与されます。1つのアプリケーションの中に複数のIndexを保持することができます。
余談ですが、このアプリケーションIDをコピペするのに、私は以前頑張って左側の矢印のところをドラッグしてたのですが、右側の□のところをクリックするとアプリケーションIDがクリップボードにコピーされて便利です 🙂

tfファイルを作ります
一旦、k-yomoさんのterraform-provider-algoliaリポジトリにあるREADMEのサンプルをコピってきて、VS Codeに貼り付けます。というか、Terraform用のExtensionがあるのですね。


諸々設定していきます
とりあえず以下のような感じで
- name(インデックス名) = “20211104test”
- attributes_config(属性の設定)
- searchable_attributes(検索対象属性) = [“foo”, “bar”, “baz”]
- attributes_for_faceting(ファセット属性) = [“hoge”]
- ranking_config(ランキングの設定)
- ranking = [“typo”, “geo”, “words”, “filters”, “proximity”, “attribute”, “exact”, “custom”]
- custom_ranking = [“desc(iine)”]
- languages_config(言語の設定)
- index_languages = [“ja”]
- query_languages = [“ja”]
- attributes_to_transliterate = [“*”]
terraformコマンドを叩いていきます
init
$ terraform init
〜略〜
Terraform has been successfully initialized!
plan
$ terraform plan
〜略〜
Plan: 1 to add, 0 to change, 0 to destroy.
apply
$ terraform apply
〜略〜
algolia_index.hoge: Creating...
algolia_index.hoge: Creation complete after 1s [id=20211104test]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Algoliaダッシュボードで確認
検索対象属性

ランキング

言語設定設定

ちなみにTransliterationの設定をミスっていて、後から変更をすることになったのですが↓のように安心ですね 🙂
algolia_index.hoge: Modifying... [id=20211104test]
algolia_index.hoge: Modifications complete after 1s [id=20211104test]
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
サポートされているリソース
AlgoliaのSynonymsとかRulesは、自分でポチポチやっていくとシンドイと思うので、コチラでサポートされているのは嬉しいですね!
2021年11月現在サポートされているリソースは以下のようになっております。

日頃からよくデモ用のIndexを作ったりしているのですが、ダッシュボード上でぽちぽちやっていて、全く管理できてない感じになってしまっているので、こうやって設定ファイルとしてバージョン管理していけると非常にありがたいので、今後もこちらを活用させていただきたいと思います!
コメント