Dela via


Så här fungerar Azure Export for Terraform

Den här artikeln beskriver azure export för Terraform-arbetsflöden . I den här artikeln får du lära dig mer om verktygets vägledning för bästa praxis, aktuella begränsningar och hur du kan minska dessa begränsningar.

Interaktivt läge

Som standard körs Azure Export for Terraform i interaktivt läge. När du kör i interaktivt läge visas de tillgängliga kortkommandona längst ned på skärmen.

Uppgift Kortkommandon
Navigering
Välj föregående objekt i resurslistan. -or- k
Välj nästa objekt i resurslistan. ↓ -or- j
Flytta till föregående sida i resurslistan. ← -or- h -or- Page Up
Flytta till nästa sida i resurslistan. → -or- l -or- Page Down
Gå till början av resurslistan. g -or- Home
Gå till slutet av resurslistan. G -or- End
Välja resurser att hoppa över
Hoppa över resursen (eller ta bort skip om den är markerad som "Hoppa över") Ta bort
Filteråtgärder
Definiera ett filter efter text i resurslistan. /
Rensa alla aktuella filter Esc
Spara åtgärder
Spara en mappningsfil i resurslistan. Utdatafilen påverkas av hoppar över (men inte filtrering). s
Exportera resurser till tillstånd (om --hcl-only det inte anges) och genererar konfigurationen. a
Användarupplevelse
Visa rekommendationer för den aktuella resursen. R
Visa resursexportfel (om det finns några). E
Visa hjälp. ?
Avsluta
Avsluta interaktivt läge. q

För varje resurs försöker Azure Export for Terraform identifiera motsvarande Terraform-resurstyp. Om den hittar en matchning markeras raden med följande indikator: 💡.

Om resursen inte kan matchas måste du ange Terraform-resursadressen i följande formulär: <resource type>.<resource name>. Refererar till exempel azurerm_linux_virtual_machine.test till en Terraform-resurstyp av azurerm_linux_virtual_machine medan test refererar till namnet på den virtuella datorn som används i konfigurationsfilerna.

Tryck på r om du vill se tillgängliga resurstyper för den valda resursen.

I vissa fall finns det Azure-resurser som inte har några motsvarande Terraform-resurser, till exempel om resursen saknar Terraform-stöd. Vissa resurser kan också skapas som en bieffekt av etableringen av en annan resurs, till exempel os-diskresursen som skapas när en virtuell dator etableras. I dessa fall kan du hoppa över resurserna utan att tilldela något.

När du har gått igenom alla resurser som ska importeras trycker du på w för att börja generera Terraform-konfigurationen och (om --hcl-only inte har valts) importera till Terraform-tillstånd.

Icke-interaktivt läge

Som standard körs Azure Export for Terraform i interaktivt läge. Ange flaggan för att ange att verktyget ska köras i icke-interaktivt läge --non-interactive .

aztfexport [command] --non-interactive <scope>

Viktigt!

Om katalogen där du kör Azure Export for Terraform inte är tom måste du lägga till --overwrite flaggan för att använda --hcl-only flaggan.

Metodtips för kärnarbetsflöden

På en grundläggande nivå står alla användare av Azure Export inför ett beslut mellan två alternativ:

Följande underavsnitt ger vägledning om vilket alternativ som ska användas baserat på scenariot.

Hantera infrastruktur

Du kanske inte behöver exportera för att ange om du inte har verifierat att de konfigurerade resurserna fungerar i din miljö på önskat sätt.

Om du är säker på att du vill hantera resursuppsättningen i Terraform med terraform init plan apply arbetsflöden är det viktigt att exportera till tillstånd.

Om du inte är säker på att du vill hantera resurserna ännu rekommenderar vi att du skickar --hcl-only flaggan.

Befintlig infrastruktur

I scenarier där du exporterar till befintliga Terraform-miljöer kan det vara bra att se --hcl-only det som en terraform-planmotsvarighet , särskilt innan du lägger till i befintliga miljöer.

Kommandot terraform apply motsvarar export av resurser – under vilken deras konfiguration är knuten till det befintliga tillståndet. I det här scenariot sparar användning av en mappningsfil körningstid för att lista och mappa resurser.

Identifiera infrastruktur

Om du inte är säker på vilka resurser som finns i en miljö kan du verifiera genom att --generate-mapping-file ange flaggan. Mer information om det här ämnet finns i Utforska val och namngivning av anpassade resurser med Hjälp av Azure Export för Terraform.

Begränsningar

Azure Export for Terraform är ett komplext verktyg som försöker konvertera Azure-infrastrukturen till Terraform-kod och -tillstånd. Dess aktuella kända begränsningar förklaras i följande underavsnitt.

Skrivskyddade egenskaper

Vissa egenskaper i AzureRM är skrivskyddade och ingår inte i den genererade kod som Azure Export for Terraform skapar. Problemet åtgärdas genom att definiera egenskapen efter export till HCL-kod.

Begränsningar mellan egenskaper

AzureRM-providern kan ange två egenskaper som står i konflikt med varandra. När Azure Export for Terraform läser motstridiga egenskaper kan båda egenskaperna anges till samma värde trots att användaren bara konfigurerar en. Ytterligare komplikationer uppstår när det finns flera begränsningar för flera egenskaper inom samma genererade konfiguration. Du måste veta var konflikter mellan egenskaper finns i konfigurationen för att åtgärda det här problemet.

Infrastruktur utanför resursomfång

När du använder Azure Export for Terraform för att rikta resursomfattningar kan det finnas resurser som krävs för konfigurationen utanför det angivna omfånget. Ett exempel är en rolltilldelning. Användaren måste identifiera resurser som ligger utanför omfånget.

Skrivskyddade egenskaper

Azure Export kan inte generera skrivskyddade egenskaper (till exempel lösenord) i konfigurationen. Du behöver veta mer om skrivskyddade egenskaper och definiera dem i en konfiguration för att skapa nya uppsättningar med resurser.

Ändra kod för att matcha kodningsstandarder

Det finns några nödvändiga åtgärder om användaren vill ändra sin kod för att följa kodningsstandarder. De här stegen skulle bara vara nödvändiga om användaren planerar att använda koden i icke-box-miljöer.

Egenskapsdefinierade resurser

Vissa resurser i Azure kan definieras som antingen en egenskap i en överordnad Terraform-resurs eller en enskild Terraform-resurs. Ett exempel är ett undernät. Azure Export for Terraform definierar resursen som en enskild resurs, men det är bästa praxis att matcha din befintliga kodningskonfiguration.

Explicita beroenden

Azure Export for Terraform kan för närvarande endast deklarera explicita beroenden. Du måste känna till mappningen av relationerna mellan resurser för att omstrukturera koden för att inkludera eventuella implicita beroenden som behövs.

Hårdkodade värden

Azure Export for Terraform genererar för närvarande hårdkodade strängar. Vi rekommenderar att du omstrukturerar dessa värden till variabler. När du använder --full-properties flaggan för att exponera alla egenskaper kan även viss känslig information (till exempel hemligheter) visas i den genererade konfigurationen. Använd rekommenderade metoder för att skydda den här kodens synlighet.

Nästa steg