Dela via


Så här fungerar Azure Export for Terraform

I den här artikeln introduceras du till arbetsflödena för Azure Export för Terraform. 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. -eller- k
Välj nästa objekt i resurslistan. -eller- j
Flytta till föregående sida i resurslistan. eller h eller Page Up
Flytta till nästa sida i resurslistan. eller l eller Page Down
Gå till början av resurslistan. g -or- Hem
Gå till slutet av resurslistan. G eller End
Välja resurser för att hoppa över
Hoppa över resursen (eller avmarkera 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 stat (om --hcl-only inte har angetts) och genererar en konfiguration. w
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>. Till exempel refererar 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.

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

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 är markerad) importera till Terraform-tillstånd.

Icke-interaktivt läge

Som standard körs Azure Export for Terraform i interaktivt läge. Om du vill ange att verktyget ska köras i icke-interaktivt läge anger du flaggan --non-interactive.

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

Viktig

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

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 genom terraform init plan apply-arbetsflöden är det väsentligt att exportera till state-filen.

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

Befintlig infrastruktur

I scenarier där du exporterar till befintliga Terraform-miljöer kan det vara bra att tänka på --hcl-only som en terraformplan-ekvivalent, särskilt innan du lägger till i befintliga miljöer.

Kommandot terraform apply motsvarar export av resurser – under vilket 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.

Upptäcka infrastruktur

Om du inte är säker på vilka resurser som finns i en miljö kan du verifiera genom att ange flaggan --generate-mapping-file. Mer information om det här ämnet finns i Utforska anpassad resursval och namngivning 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.

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.

Endast skrivbara 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-sandbox-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 flaggan --full-properties för att exponera alla egenskaper kan 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