Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
さくらのクラウドのAPIで名前で完全⼀致 / SAKURA cloud API exact m...
Search
Hiroaki Nakamura
June 22, 2021
Programming
1
280
さくらのクラウドのAPIで名前で完全⼀致 / SAKURA cloud API exact match
さくらのクラウド⽤の公認CLIクライアント usacloud とさくらのクラウドのAPIで名前で完全⼀致する方法の紹介です
Hiroaki Nakamura
June 22, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Lessons by WebAssembly app in production on CDN Edge Computing Service
tetsuharuohzeki
0
210
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
290
エンジニア1年目で複雑なコードの改善に取り組んだ話
mtnmr
3
2k
『ドメイン駆動設計をはじめよう』中核の業務領域
masuda220
PRO
5
1k
2024 컴포즈 정원사
jisungbin
0
150
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
260
今インフラ技術をイチから学び直すなら
yuhta28
1
140
Pythonで改めて考える「クラス(class)」の使いどころ
os1ma
2
740
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
600
watsonx.ai Dojo #2 生成AIを使ったアプリ開発入門編
oniak3ibm
PRO
0
230
Featured
See All Featured
Optimizing for Happiness
mojombo
375
69k
Into the Great Unknown - MozCon
thekraken
29
1.4k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Building a Modern Day E-commerce SEO Strategy
aleyda
36
6.8k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
What's new in Ruby 2.0
geeforr
340
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
How to Ace a Technical Interview
jacobian
274
23k
Why Our Code Smells
bkeepers
PRO
334
56k
Infographics Made Easy
chrislema
239
18k
Transcript
さくらのクラウドのAPIで名前で完全一致 さくらのマイクロコミュニティ (CLI/APIユーザの会) vol.2 2021-06-22 さくらインターネット(株) 中村 弘輝
自己紹介と宣伝 コンテンツ配信グループで「ウェブアクセラレータ」を開発しています。 https://www.sakura.ad.jp/services/cdn/ 手軽に使える高コストパフォーマンスCDNサービス 突発的なアクセスへの備えから日々の負荷軽減まで幅広く気軽にご利用いた だけるCDNサービスです。 意図せぬキャッシュの誤配信を起こしにくい仕様としています。 ぜひご利用ください。 2
今日のテーマ:さくらのクラウドのDNSとusacloud さくらのクラウドのDNS さくらのクラウドのオプションサービス https://manual.sakura.ad.jp/cloud/appliance/dns/index.html 月額44円(税込)または日割り2円(税込) usacloud さくらのクラウド用の公認CLIクライアント https://github.com/sacloud/usacloud/ 3
DNSレコードの一括設定で事件発生 A「コントロールパネルからインポートも出来るけどCLIでやりたい」 B「usacloudのdnsサブコマンドで出来るみたいですよ」 A「example.jpのレコード設定するつもりが、サブドメインのhoge.example.jpのレ コードを吹っ飛ばしてしまいました」 hoge.example.jpのレコードはバックアップしてたので復旧は出来たけど。 4
usacloud の名前指定はデフォルトは部分一致 基本的な使い方 を見ると以下のように書かれています。 usacloud <リソース> <サブコマンド> [オプション] [対象リソースのID or
名前(部分一致) or タグ] 対象のドメインのリソースIDを指定すれば他のドメインも含まれるのは回避可能 「でもドメイン名で完全一致が出来ると便利だよなあ」 作者のyamamoto-febcさんに相談したらサクっと対応してくださいました。 ありがとうございます! --argument-match-mode exact というオプションで出来るようになりました。 5
usacloud の --query に jq の式を書く 「ついでに --query でJMESPathでなくjqのクエリ書きたいなあ」 こちらも対応してくださいました。ありがとうございます!
--query-driver jq と書けばOKです。 github.com/itchyny/gojq が使われています。 itchyny さんありがとうございます! 6
DNSのレコード一覧取得コマンド例 ドメインの名前がexample.jpに完全一致するレコードを取得 usacloud dns read \ --output-type json \ --argument-match-mode
exact \ --query-driver -jq \ --query '.[0].Records' \ example.jp 7
usacloud の完全一致はクライアント側でフィルタリング --argument-match-mode exact はクライアント側で完全一致でフィルタリング usacloud の対象の引数は 対象リソースのID or 名前(部分一致)
or タグ なのでこの 挙動は妥当 ドメイン数が多くなければ実用上問題なし 8
でも気になるのでAPIでの完全一致も調査してみたら実は出来る クラウドのAPIドキュメント の「リクエストパラメータの共通仕様」の「フィル タリング」の項 「文字列型カラムは中間一致」ですが「配列を与えると完全一致のOR結合」 フィルタに {"Filter":{"Name":["example.jp"],"ServiceClass":"cloud/dns"}} と 指定すればドメイン名で完全一致可能 フィルタはURLエンコードしてクエリパラメータとして指定
9
usacloud の rest サブコマンドを使用してAPIを直接呼ぶ usacloud の restコマンド でAPIを直接呼べる 今回は GET
/commonserviceitem を使用 ドメインの名前がexample.jpに完全一致するレコード取得のコマンド実行例 usacloud rest request \ -d '{"Filter":{"Name":["example.jp"],"ServiceClass":"cloud/dns"}}' \ --query-driver jq \ --query '.CommonServiceItems[0].Settings.DNS.ResourceRecordSets' \ /commonserviceitem 10
まとめ usacloud で完全一致するオプションが追加されました usacloud でjqの式でフィルタリングするオプションが追加されました さくらのクラウドAPIは名前で完全一致でフィルタリング可能です usacloud 便利!ぜひご活用ください! 11