YAMLのインデントと構文を行番号付きでチェック
YAMLファイルを壊す構造の誤りを見つけます。例では、3行目に続いて4行目で繰り返された port と、5行目のタブの2件が見つかり、それぞれ行番号と分かりやすい説明が付きます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- service: name: api port: 8080 port: 9090 debug: true
- エラー数
- 2
このYAMLインデント・構文チェッカーは、設定ファイルの信頼性を損なう小さな構造エラーを検出します。行頭の空白に隠れたタブ、予期しないインデント深度の変化、同じマッピング内の重複キーが対象です。各指摘には元の行番号が付くため、問題の設定へ直接移動できます。YAMLとしてまったく解析できないテキストは拒否し、壊れた入力と、lintの指摘だけを含む有効な文書を明確に区別します。
解析メッセージを追わず、要点を絞った報告を確認します
完全なYAML文書をテキスト欄へ貼り付け、チェックを実行してください。結果には合否、指摘数、および各問題の1始まりの行番号、安定した問題種別、説明が表示されます。この簡潔な形式は、デプロイ用ファイルを人が確認する場合にも、生成済み設定をスクリプトで検査する場合にも適しています。
主に3つの構造上の危険を調べます。エディターごとに表示幅が異なる行頭のタブ、親ノードが定めた構造に従わないインデント変更、同じスコープ内で繰り返されたマッピングキーです。同じ名前でも別オブジェクト内なら使用できます。
コメントや空行によって行参照がずれることはありません。問題がなければ、仮の値ではなく空のエラー配列を返します。そのため、ビルドやコミット前の処理で、そのまま成功条件として扱えます。
lintの指摘と無効な入力を区別します
lintの指摘は、構造に危険があっても有用な検査を続けられるテキストに対するものです。インデント中のタブや重複キーは、該当行を含む通常の結果になります。一方、解析失敗は、信頼できる構造解析を続けられないほど文書が不完全または不正であることを示します。
閉じていない引用符、対応しないフローコレクションの区切り、空のマッピングキー、マッピングやシーケンスが必要な位置にある単純行などは、無効入力エラーになります。この区別により自動化が容易です。復旧可能な指摘はまとめて表示し、解析失敗ならパイプラインを停止して作成者に修正を求められます。
処理は決定論的で、文書の書き換え、重複値の選択、意図した入れ子の推測は行いません。まず最初の解析エラーを直して再実行し、その後に行番号付きの残りの指摘へ対応してください。
エディターや配信パイプラインで安全に利用します
解析済みオブジェクトではなく、正確なソーステキストを送信してください。多くのパーサーは通常データへの変換時にインデントと重複キーを失うためです。報告位置をエディターと一致させるには、改行とコメントも保持します。
実用的なパイプラインでは、テンプレート処理後かつ秘密情報の挿入前に実行し、validがfalseの場合や無効入力エラーの場合に失敗させられます。同じテキストには常に安定した応答を返し、ネットワーク、乱数、時刻、環境固有状態を使いません。入力サイズと行数にも上限があります。
これは基本的な構造lintであり、スキーマ検証ではありません。
活用例
デプロイ設定を確認
ツールがファイルを解釈する前に、ずれた入れ子、タブ、重複設定を検出します。
生成されたYAMLを検証
ビルド内でテンプレート出力を調べ、不正な構造が生成された行を具体的に返します。
設定変更をレビュー
コードレビューへ高速な構造チェックを加え、大きな差分に空白エラーが隠れるのを防ぎます。
よくある質問
チェッカーはYAMLを変更しますか?
いいえ。 指摘を報告するだけで、インデントの書き換え、キーの削除、重複値の選択は行いません。
別のオブジェクトなら同じキーを使えますか?
はい。 同一マッピングのスコープ内で繰り返された場合に限って報告します。
揃って見えるタブも報告されるのはなぜですか?
エディターごとにタブ幅が異なり、ツール間の移動でYAMLの入れ子が変わり得るためです。
指摘と、受け付けられないファイルの違いは何ですか?
タブや重複したキーなどの指摘は、行番号付きの通常の結果として返ります。閉じていない引用符や空のキーのように解析できないほど壊れたテキストは拒否されるため、先にそれを直してから再度確認してください。
設定項目そのものが正しいかも確認しますか?
いいえ。これは基本的な構造のチェックで、Kubernetesの項目やアプリの設定が許可されているかどうかは判断しません。意味の正しさが重要な場合は、対象システム向けの検証ツールと組み合わせてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev2/yaml-lint-basic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"service:\n name: api\n ports:\n - 8080\n - 8081"}'const res = await fetch("https://api.kit.forhosting.com/dev2/yaml-lint-basic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/yaml-lint-basic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/yaml-lint-basic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"service:\\n name: api\\n ports:\\n - 8080\\n - 8081"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"service:\n name: api\n ports:\n - 8080\n - 8081"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/yaml-lint-basic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.yaml_lint_basic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
エディターや配信パイプラインで安全に利用します
このエンドポイントは、YAMLがデプロイツール、パッケージ公開処理、継続的インテグレーション、アプリ起動へ渡る前の素早い確認向けです。Kubernetesのフィールドなどの意味的な正しさが必要な場合は、対象システム専用の検証と組み合わせてください。
技術的な質問
1回のチェック料金はいくらですか?
APIリクエスト1回につき$0.002です。ブラウザー版はこのページで直接利用できます。
Kubernetesやワークフローのスキーマ検証ですか?
いいえ。一般的なYAML構造と基本構文を確認し、製品固有のフィールド、型、ポリシーは検証しません。