Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
さくらのクラウドのAPIで名前で完全⼀致 / SAKURA cloud API exact m...
Search
Hiroaki Nakamura
June 22, 2021
Programming
370
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
さくらのクラウドのAPIで名前で完全⼀致 / SAKURA cloud API exact match
さくらのクラウド⽤の公認CLIクライアント usacloud とさくらのクラウドのAPIで名前で完全⼀致する方法の紹介です
Hiroaki Nakamura
June 22, 2021
Other Decks in Programming
See All in Programming
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
140
AWSに止められる覚悟してますか?
morizo_1984
2
520
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
パーソナライズPodcastを作った話
repunit11
0
130
Domain-Driven Transformation
hschwentner
2
2.3k
Heart of Swift Concurrency
koher
0
1.2k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
380
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
360
カツオ、ご期待ください
suneo3476
0
150
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
190
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Paper Plane
katiecoart
PRO
4
54k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
From π to Pie charts
rasagy
1
390
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Documentation Writing (for coders)
carmenintech
77
5.6k
Tell your own story through comics
letsgokoyo
1
1.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
Optimizing for Happiness
mojombo
378
71k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
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