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
290
さくらのクラウドのAPIで名前で完全⼀致 / SAKURA cloud API exact match
さくらのクラウド⽤の公認CLIクライアント usacloud とさくらのクラウドのAPIで名前で完全⼀致する方法の紹介です
Hiroaki Nakamura
June 22, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
130
CNCF Project の作者が考えている OSS の運営
utam0k
6
710
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
730
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
370
Software Architecture
hschwentner
6
2.1k
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
3
4.3k
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
550
SpringBoot3.4の構造化ログ #kanjava
irof
2
990
WebDriver BiDiとは何なのか
yotahada3
1
140
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1k
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
840
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Rails Girls Zürich Keynote
gr2m
94
13k
Building Adaptive Systems
keathley
40
2.4k
Why Our Code Smells
bkeepers
PRO
336
57k
It's Worth the Effort
3n
184
28k
4 Signs Your Business is Dying
shpigford
182
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Designing for Performance
lara
604
68k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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