programmatūra · 6 min · 24.07.2026

Cloudflare Wrangler tagad maina funkciju karogus no termināļa bez Worker atkārtotas izvietošanas

Cloudflare 16. jūlijā pievienoja Wrangler komandrindas rīkam komandu kopu wrangler flagship, kas ļauj no termināļa pārvaldīt Flagship funkciju karogus. Galvenais ieguvums ir tas, ka karoga uzvedību var mainīt bez Worker atkārtotas izvietošanas. Izstrādātājs vienā komandā palielina jaunas funkcijas redzamību vai to pilnībā izslēdz. Pats Worker kods paliek neskarts. Wrangler ir Cloudflare oficiālais komandrindas rīks, ar ko izstrādātāji jau izvieto un konfigurē Workers projektus.

Flagship ir Cloudflare funkciju pārvaldības platforma. Līdz šim karogus mainīja pārlūka panelī vai caur API. Tagad tā pati darbība notiek no komandrindas, tātad arī no CI/CD skriptiem un AI aģentiem. Cloudflare izmaiņu žurnāls uzskaita jaunās komandas un rāda to sintaksi.

Kas ir funkciju karogi

Funkciju karogs ir slēdzis kodā, kas ļauj ieslēgt vai izslēgt funkciju bez koda maiņas. Vērtību lasa izpildes laikā. Tā vietā, lai jaunu funkciju izlaistu visiem uzreiz, to var atvērt daļai lietotāju un vērot, vai kaut kas nelūst. Komandas karogus izmanto trim tipiskiem uzdevumiem: pakāpeniskai izlaišanai, A/B testiem un ātrai funkcijas izslēgšanai, ja tā salūst ražošanā.

Cloudflare gadījumā karoga vērtība glabājas Flagship pusē. Worker to nolasa caur sasaisti, kas ierakstīta konfigurācijā. Sasaiste ar nosaukumu FLAGS Worker vidē parādās tāpat kā KV krātuve vai D1 datubāze. Vērtība pati var būt loģiskā (boolean), teksta, skaitliska vai JSON. Tā kā vērtība nāk no sasaistes, viens un tas pats izvietotais Worker dažādiem apmeklētājiem var atgriezt dažādu rezultātu atkarībā no karoga.

Kā izveido lietotni un karogu

Pirmā komanda izveido Flagship lietotni un ieraksta sasaisti konfigurācijas failā. Karogs --binding FLAGS nosaka vārdu, ar kuru Worker vēlāk pieprasa vērtību, bet --update-config pats ieraksta sasaisti failā wrangler.json vai wrangler.jsonc:

wrangler flagship apps create "My Worker App" --binding FLAGS --update-config

Pēc tam karogu izveido šai lietotnei. Vienkāršu loģisko karogu var izveidot ar vienu rindu:

wrangler flagship flags create <APP_ID> new-checkout

Karogam ar vairākiem variantiem norāda katru variantu, tā tipu un noklusēto vērtību. Zemāk redzamajā piemērā ir divi teksta varianti, control ar veco norēķinu plūsmu un treatment ar jauno. Noklusējuma vērtība ir control, tātad sākumā visi apmeklētāji redz veco plūsmu:

wrangler flagship flags create <APP_ID> checkout-flow 
  --variation control=old-checkout 
  --variation treatment=new-checkout 
  --default control --type string

Redzamības maiņa bez izvietošanas

Trīs darbības nosaka, kas redz kuru variantu. Komanda rollout pakāpeniski atver karogu pēc procentiem, piemēram, sākumā 10 % lietotāju. Komanda split sadala plūsmu starp variantiem pēc svariem, kas noder A/B testam ar divām vienlīdz aktīvām versijām. Komanda rules pievieno mērķēšanas nosacījumus ar prioritāti, piemēram, valsts vienāda ar US. Noteikumi tiek pārbaudīti prioritātes secībā, tāpēc konkrētāko var likt augstāk par vispārīgo. Noklusēto variantu pārslēdz ar vienu rindu:

wrangler flagship flags update <APP_ID> checkout-flow --default treatment

Karogu var arī izslēgt vai atkal ieslēgt:

wrangler flagship flags disable <APP_ID> checkout-flow
wrangler flagship flags enable <APP_ID> checkout-flow

Visas šīs komandas darbojas arī CI/CD plūsmās, skriptos un AI aģentiem, lai pārbaudītu Flagship stāvokli, mainītu karoga uzvedību vai atgrieztu iepriekšējo versiju. Worker kods paliek tas pats.

Piemērs ar norēķinu plūsmu

Pieņemsim, komanda pārraksta veikala norēķinu lapu. Vecā versija ir old-checkout, jaunā ir new-checkout. Karogu ar diviem variantiem izveido tā, ka noklusētā vērtība paliek vecā lapa. Worker kods lasa karogu un rāda attiecīgo versiju konkrētam apmeklētājam. Kad jaunā lapa gatava testam, ar rollout to atver 10 % apmeklētāju. Ja kļūdu nav, procentu palielina līdz 25, tad 50, tad visiem.

Ja jaunajā lapā parādās problēma, ar --default control visus atgriež uz veco lapu dažās sekundēs. Jauna izvietošana šim nav vajadzīga, jo mainās tikai karoga vērtība Flagship pusē. Tā pati komanda strādā arī tad, kad pārslēgšanu veic monitoringa skripts, kas pamana kļūdu pieaugumu. Izstrādātājam nav jāgaida jauns būvējums, kas dažkārt aizņem vairākas minūtes.

Kur tas iederas

Funkciju karogi nav jauna ideja. Tos piedāvā LaunchDarkly, Flagsmith un citi pakalpojumi. Daudzas komandas tos uztur pašas ar KV krātuvi vai vides mainīgajiem. Cloudflare pieejas atšķirība ir tā, ka karogs dzīvo tajā pašā platformā, kur jau darbojas Worker. Sasaiste konfigurācijā nozīmē, ka Worker karoga vērtību nolasa lokāli, bez atsevišķa tīkla izsaukuma uz svešu servisu. Pārlūka panelis nekur nepazūd, tāpēc tos pašus karogus var apskatīt un labot arī tur.

Komandu pievienošana Wrangler rīkam nozīmē arī, ka karogu izmaiņas var ierakstīt versiju kontrolē un palaist no CI/CD tāpat kā jebkuru citu izvietošanas soli. Katra izmaiņa paliek skriptā vai vēsturē, tāpēc vēlāk var redzēt, kurš un kad karogu pārslēdza. AI aģents, kas uztur kodu, ar to pašu komandu var pats izslēgt bojātu funkciju. Wrangler jau ir galvenais rīks Workers izvietošanai un konfigurācijai, tāpēc karogu komandas nonāk tur, kur komanda jau strādā katru dienu. Detaļas ir Wrangler dokumentācijā.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie