YAML įtraukos klaidos pavyzdys: „Off-by-One“ tarpas
Patikrinkite YAML konfigūracijas („Kubernetes“, CI / CD), ar nėra tinkamos įtraukos neprisijungus.
Rezultatas
Šiame puslapyje atidaromas YAML tikrintuvas, iš anksto įkeltas su trumpa serverio konfigūracija, kurioje yra tikra, įprasta klaida: po to, kai du raktai yra keturių tarpų gylyje, kitas raktas nukrenta iki trijų tarpų, o ne grįžta į uždarojo bloko dviejų tarpų lygį. YAML neturi tabs-vs-spaces tolerancijos ir nėra fiksuoto įtraukos pločio, todėl tokia atskira tarpinė vieta neduoda vidurkio – ji tiesiog neatitinka jokio atviro bloko, o failas yra netinkamas. Toliau pateikta nesėkminga patikra veikia tiesiogiai, kai įkeliamas puslapis.
Tai yra vienas iš labiausiai paplitusių būdų, kaip tikrasis YAML nutrūksta praktikoje: failo redagavimas rankiniu būdu redaktoriuje, kuris neįgyvendina nuoseklaus įtraukos dydžio, arba fragmento įklijavimas iš kažkur, kai tarpai skiriasi nuo aplinkinio bloko. Skirtingai nuo pasikartojančio rakto ar paklydusio skirtuko, po vieną įtraukos lapelį lengva nepastebėti, ypač giliai įdėtame „Kubernetes“ apraše arba CI konvejerio faile – būtent todėl automatinis patikrinimas jį užfiksuoja greičiau, nei žmogus peržiūrintis skirtumą nuskaito.
Pakeiskite teksto pavyzdį savo failu, kad pamatytumėte tas pačias konfigūracijai taikomas eilučių ir stulpelių ataskaitas. Kai suprasite čia pateiktą gedimo modelį, palyginkite jį su yaml-config-example išankstiniu nustatymu, kad pamatytumėte tą pačią struktūrą su nuoseklia įtrauka.