Hurtig start
Denne vejledning fører dig fra ingenting til et Status200-projekt, der administreres af Terraform, på omkring ti minutter. Du opretter en API-nøgle, peger Terraform mod dit projekt og anvender en etiket, en monitor, der tjekker dit website, og en privat statusside, der viser den. Derefter ændrer du en af dem og rydder op.
Det, du bygger i denne vejledning
Før du begynder
- Terraform 1.5 eller nyere, eller OpenTofu 1.6 eller nyere. Med OpenTofu kører du
tofualle steder, hvor denne vejledning kørerterraform. - Et Status200-projekt på status200.ru eller på din egen Status200, hvor du kan oprette API-nøgler.
- På Status200 Cloud abonnementet Growth eller højere. Et projekts API-nøgler virker kun på det.
Opret dine første ressourcer
Opret en API-nøgle til projektet
Åbn Projektindstillinger → Avanceret → API-nøgler i Status200-dashboardet, og klik på Opret API-nøgle. Giv den et Navn, såsom
terraform, og vælg Projektadministrator under Adgang: Terraform opretter, læser, ændrer og sletter alle slags poster, den administrerer, og Projektadministrator må gøre alt det. Til en mere begrænset nøgle vælger du Vælg tilladelser senere og tilføjer kun de tilladelser, du har brug for, på nøglens side.Nøglen udløber om et år. For at vælge en anden dato åbner du Flere felter, før du opretter den, eller ændrer datoen senere på nøglens side. Når nøglen er oprettet, åbner dens side: kopiér API-nøgle fra kortet API-nøgledetaljer.
Gør nøglen tilgængelig for Terraform
Læg nøglen i miljøvariablen
STATUS200_API_KEYi den shell, du kører Terraform i, så den aldrig havner 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>"Peg Terraform mod Status200
Opret en tom mappe, og i den en fil med navnet
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å en selv-hostet Status200 skal du læse Selv-hostet opsætning, før du vælger en providerversion.
Beskriv dine ressourcer
Tilføj disse blokke til
main.tf. De læser to af de monitorstatusser, som alle projekter starter med, og opretter en etiket, en monitor, der tjekkerhttps://example.comhvert femte minut (sæt dit eget website ind der), og en privat statusside, der viser monitoren: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 }Monitorens
monitor_stepssiger, hvad den tjekker, og hvad hvert resultat betyder: efter hvert tjek sætter det første kriterium, der passer, dens status. Monitortrin forklarer hver del.Planlæg og anvend
Terraform
terraform init terraform plan terraform applyOpenTofu
tofu init tofu plan tofu applyinithenter provideren. Planen slutter medPlan: 4 to add, 0 to change, 0 to destroy.Skrivyesfor at anvende den; når den er færdig, udskriver Terraform den nye monitors ID.Tjek dashboardet
I Status200-dashboardet:
- Monitorer viser
Homepagemed etikettencritical. Dens første tjek kommer inden for få minutter. - Statussider viser
Internal Status, som viserHomepage. - Projektindstillinger → Grundlæggende → Etiketter viser
criticali den farve, du har angivet.
Kør
terraform planigen. Den svarerNo changes.: Status200 indeholder præcis det, konfigurationen siger.- Monitorer viser
Ændr en ressource
Ændr konfigurationen, ikke dashboardet. Sæt etikettens color til "#2ECC71" i main.tf, og planlæg og anvend derefter:
terraform plan
terraform applyPlanen slutter med Plan: 0 to add, 1 to change, 0 to destroy.: etiketten ændres på stedet. En ændring, som nogen laver i dashboardet på en ressource, Terraform administrerer, vises i den næste plan, og når du anvender den, bliver det, konfigurationen siger, sat tilbage.
Ryd op
Hvis dette var en prøvetur, så slet det, konfigurationen har oprettet:
terraform destroyDet sletter etiketten, monitoren, statussiden og dens ressource. De to monitorstatusser bliver: datakilderne læser dem kun.
Fejlfinding
Meddelelsen “Missing API Key”
Provideren fandt ingen API-nøgle. Eksportér STATUS200_API_KEY i den shell, du kører Terraform i, eller angiv api_key i provider-blokken, og kør kommandoen igen.
Meddelelsen “the Status200 API returned status 400: Invalid API Key”
Nøglen er tastet forkert, udløbet eller slettet, eller den hører til en anden Status200 end den, status200_url peger på. Kopiér nøglen igen fra dens side, eller opret en ny.
Meddelelsen “the Status200 API returned status 402: API keys need the Growth plan”
På Status200 Cloud virker et projekts API-nøgler kun på abonnementet Growth eller højere. Opgradér projektet under Projektindstillinger → Fakturering og fakturaer → Fakturering, så virker den samme nøgle igen.
Meddelelsen “the Status200 API returned status 422: You do not have permissions to create Monitor”
Nøglen har ingen tilladelse til den slags post. Giv den Projektadministrator på nøglens side, eller den tilladelse, meddelelsen nævner.
Meddelelsen “No monitor status matches {name = "Offline"}”
Dit projekts monitorstatusser har andre navne. Brug de navne, du ser under Overvågninger → Indstillinger → Monitorstatus, eller slå i stedet statussen op med is_offline_state = true.