Snabbstart
Den här guiden tar dig från ingenting till ett Status200-projekt som hanteras av Terraform på ungefär tio minuter. Du skapar en API-nyckel, riktar Terraform mot ditt projekt och tillämpar en etikett, en monitor som kontrollerar din webbplats och en privat statussida som visar den. Sedan ändrar du en av dem och städar upp.
Det du bygger i den här guiden
Innan du börjar
- Terraform 1.5 eller senare, eller OpenTofu 1.6 eller senare. Med OpenTofu kör du
tofuöverallt där den här guiden körterraform. - Ett Status200-projekt på status200.ru eller på ditt eget Status200, där du kan skapa API-nycklar.
- På Status200 Cloud abonnemanget Growth eller högre. Ett projekts API-nycklar fungerar bara på det.
Skapa dina första resurser
Skapa en API-nyckel till projektet
Öppna Projektinställningar → Avancerad → API-nycklar i Status200s instrumentpanel och klicka på Skapa API-nyckel. Ge den ett Namn, till exempel
terraform, och välj Projektadministratör under Åtkomst: Terraform skapar, läser, ändrar och tar bort alla slags poster som det hanterar, och Projektadministratör får göra allt det. För en mer begränsad nyckel väljer du Välj behörigheter senare och lägger bara till de behörigheter som du behöver på nyckelns sida.Nyckeln går ut om ett år. För att välja ett annat datum öppnar du Fler fält innan du skapar den, eller ändrar datumet senare på nyckelns sida. När nyckeln har skapats öppnas dess sida: kopiera API-nyckel från kortet Detaljer om API-nyckel.
Gör nyckeln tillgänglig för Terraform
Lägg nyckeln i miljövariabeln
STATUS200_API_KEYi det skal där du kör Terraform, så att den aldrig hamnar i en fil:Linux
export STATUS200_API_KEY="<your-api-key>"macOS
export STATUS200_API_KEY="<your-api-key>"Windows
$env:STATUS200_API_KEY = "<your-api-key>"Rikta Terraform mot Status200
Skapa en tom mapp, och i den en fil med namnet
main.tf:terraform { required_providers { oneuptime = { source = "oneuptime/status200" version = "~> 14.0" } } } provider "oneuptime" { # The API key comes from STATUS200_API_KEY. # On a self-hosted Status200, add your Status200's address: # status200_url = "https://status200.example.com" }På ett självhostat Status200 läser du Självhostad konfiguration innan du väljer en providerversion.
Beskriv dina resurser
Lägg till de här blocken i
main.tf. De läser två av de monitorstatusar som varje projekt börjar med, och skapar en etikett, en monitor som kontrollerarhttps://example.comvar femte minut (ange din egen webbplats där) och en privat statussida som visar monitorn:data "status200_monitor_status" "operational" { name = "Operational" } data "status200_monitor_status" "offline" { name = "Offline" } resource "status200_label" "critical" { name = "critical" description = "Resources that page on-call when down" color = "#FF5733" } resource "status200_monitor" "homepage" { name = "Homepage" description = "Checks that the homepage responds" monitor_type = "Website" monitoring_interval = "*/5 * * * *" labels = [status200_label.critical.id] monitor_steps = [{ monitor_destination = "https://example.com" monitor_destination_type = "URL" request_type = "GET" criteria = [ { name = "Offline" description = "The homepage does not respond" filter_condition = "Any" change_monitor_status = true monitor_status_id = data.status200_monitor_status.offline.id filters = [ { check_on = "Is Online" filter_type = "False" } ] }, { name = "Online" description = "The homepage responds" filter_condition = "All" change_monitor_status = true monitor_status_id = data.status200_monitor_status.operational.id filters = [ { check_on = "Is Online" filter_type = "True" } ] } ] }] } resource "status200_status_page" "internal" { name = "Internal Status" description = "Status of our internal services" page_title = "Service Status" is_public_status_page = false } resource "status200_status_page_resource" "homepage" { status_page_id = status200_status_page.internal.id monitor_id = status200_monitor.homepage.id display_name = "Homepage" } output "monitor_id" { value = status200_monitor.homepage.id }Monitorns
monitor_stepssäger vad den kontrollerar och vad varje resultat betyder: efter varje kontroll sätter det första kriterium som stämmer dess status. Monitorsteg förklarar varje del.Planera och tillämpa
Terraform
terraform init terraform plan terraform applyOpenTofu
tofu init tofu plan tofu applyinithämtar providern. Planen slutar medPlan: 4 to add, 0 to change, 0 to destroy.Skrivyesför att tillämpa den; när den är klar skriver Terraform ut den nya monitorns ID.Kontrollera instrumentpanelen
I Status200s instrumentpanel:
- Monitorer visar
Homepage, med etikettencritical. Dess första kontroll kommer in inom några minuter. - Statussidor visar
Internal Status, som visarHomepage. - Projektinställningar → Grundläggande → Etiketter visar
critical, i den färg som du angav.
Kör
terraform planigen. Den svararNo changes.: Status200 innehåller exakt det som konfigurationen säger.- Monitorer visar
Ändra en resurs
Ändra konfigurationen, inte instrumentpanelen. Sätt etikettens color till "#2ECC71" i main.tf, och planera och tillämpa sedan:
terraform plan
terraform applyPlanen slutar med Plan: 0 to add, 1 to change, 0 to destroy.: etiketten ändras på plats. En ändring som någon gör i instrumentpanelen på en resurs som Terraform hanterar visas i nästa plan, och när du tillämpar den återställs det som konfigurationen säger.
Städa upp
Om det här var en provtur tar du bort det som konfigurationen skapade:
terraform destroyDet tar bort etiketten, monitorn, statussidan och dess resurs. De två monitorstatusarna blir kvar: datakällorna läser dem bara.
Felsökning
Meddelandet ”Missing API Key”
Providern hittade ingen API-nyckel. Exportera STATUS200_API_KEY i det skal där du kör Terraform, eller ange api_key i provider-blocket, och kör kommandot igen.
Meddelandet ”the Status200 API returned status 400: Invalid API Key”
Nyckeln är felskriven, har gått ut eller har tagits bort, eller så hör den till ett annat Status200 än det som status200_url pekar på. Kopiera nyckeln igen från dess sida, eller skapa en ny.
Meddelandet ”the Status200 API returned status 402: API keys need the Growth plan”
På Status200 Cloud fungerar ett projekts API-nycklar bara på abonnemanget Growth eller högre. Uppgradera projektet under Projektinställningar → Fakturering och fakturor → Fakturering, så fungerar samma nyckel igen.
Meddelandet ”the Status200 API returned status 422: You do not have permissions to create Monitor”
Nyckeln har ingen behörighet för det slaget av post. Ge den Projektadministratör på nyckelns sida, eller den behörighet som meddelandet nämner.
Meddelandet ”No monitor status matches {name = "Offline"}”
Ditt projekts monitorstatusar har andra namn. Använd de namn som du ser under Övervakare → Inställningar → Monitorstatus, eller slå i stället upp statusen med is_offline_state = true.