Share via


Testre szabott erőforrás-kiválasztás és elnevezés az Azure Export for Terraform használatával

Az Azure Export for Terraform különböző lehetőségeket kínál az exportált erőforrások testreszabására.

Ebben a cikkben megismerheti az egyes lehetőségek előnyeit és hátrányait.

  • A felhasználói felület használata
  • Lekérdezési mód használata
  • Leképezési fájl használata

A felhasználói felület használata

Ha interaktív módban futtatja az Azure Export for Terraformot, a megadott erőforrások (a futtatáskor megadott paraméterekkel) jelennek meg. Alapértelmezés szerint az összes erőforrást exportálja a rendszer.

A Törlés kapcsolóként működik az erőforrások kihagyása vagy beleértése során. Az erőforrások exportálásának eltávolításához a nyílbillentyűkkel jelölje ki a kívánt erőforrást, és nyomja le a Delete billentyűt. Az erőforrás a "Kihagyás" megjelenítésre frissül.

A kihagyó művelet visszavonásához ellenőrizze, hogy a kihagyott erőforrás ki van-e jelölve, majd nyomja le ismét a Delete billentyűt.

Profik:

  • Egyetlen váltókulcs használatát igényli.
  • A parancs futtatása előtt nem kell tudnia a kívánt erőforrásokat.

Hátránya:

  • A művelet időigényes lehet, ha sok erőforrással rendelkezik a görgetéshez és a kihagyáshoz.

Lekérdezési mód használata

A szűrők Azure Resource Graph-lekérdezési szintaxissal történő alkalmazása hatékony módszer, ha pontosan tudja, hogy milyen szűrőkre van szüksége.

aztfexport query [option] <ARG_where_predicate>

Tegyük fel például, hogy van egy olyan erőforráscsoportja, myResourceGroup amely számos erőforrással rendelkezik, beleértve a hálózati erőforrást is. Ha csak a hálózati erőforrást szeretné exportálni, az alábbi szintaxist használhatja:

aztfexport query -n "resourceGroup =~ 'myResourceGroup' and type contains 'Microsoft.Network'"

Profik:

  • Egyetlen parancs manuális szerkesztés nélkül.
  • Korlátlan számú szűrőt támogat.
  • Hatékonyan kezeli a nagy mennyiségű erőforrást.

Hátránya:

  • Egyszerűen kizárhatja az exportálni kívánt erőforrásokat.
  • Az Azure Resource Graph szintaxisának ismerete szükséges.

Leképezési fájl használata

Az alábbi szintaxis az erőforrás-leképezési fájlban definiált erőforrások exportálásának alapjait mutatja be:

aztfexport mapping-file [option] <resource_mapping_file>

A leképezési fájlokat interaktív vagy nem interaktív módban is használhatja:

  • Interaktív mód: Ha interaktívan fut az erőforráslista nézetben, nyomja le az s billentyűt.
  • Nem interaktív mód: A leképezési fájlt az összes exportálási parancsban (resource, , resource-group, querymapping file) létrehozhatja a --generate-mapping-file jelölő hozzáadásával.

Ha a használati esetek előzetes exportálási módosításokat igényelnek, manuálisan is létrehozhatja vagy szerkesztheti a leképezési fájlt. Íme néhány példa arra, hogy mikor szeretné manuálisan szerkeszteni a saját leképezési fájlját:

Használati eset Steps
Egy erőforráscsoportban sok erőforrás található, de csak néhányat kell exportálnia. Törölje a JSON-objektumokat a választott szerkesztőből, és mentse a fájlt az exportálás előtt.
Az összes erőforrást konzisztens módon szeretné átnevezni. Módosítsa a tulajdonságot a resource-name cég megfelelőségi szabványainak megfelelő névre.
Az erőforrások egy csoportját újra kell átfésülnie az erőforrástípusuk szerint , például hálózatkezelés vagy számítás szerint. A szerkesztő használatával megkeresheti az összes Microsoft.Network vagy Microsoft.Compute az erőforrást.

Tegyük fel például, hogy a következő parancsot futtatja egy virtuális gépet tartalmazó erőforráscsoporthoz:

aztfexport rg --generate-mapping-file --non-interactive myResourceGroup

Az eredmények a következő JSON-fájlhoz hasonlóak:

{
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-MyResourceGroup/extensions/OmsAgentForLinux": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-MyResourceGroup/extensions/OmsAgentForLinux",
		"resource_type": "azurerm_virtual_machine_extension",
		"resource_name": "res-0"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup",
		"resource_type": "azurerm_resource_group",
		"resource_name": "res-1"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/sshPublicKeys/vm-MyResourceGroup_key": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/sshPublicKeys/vm-MyResourceGroup_key",
		"resource_type": "azurerm_ssh_public_key",
		"resource_name": "res-2"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-MyResourceGroup": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-MyResourceGroup",
		"resource_type": "azurerm_linux_virtual_machine",
		"resource_name": "res-3"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-myResourceGroup-vm-d146": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-myResourceGroup-vm-d146",
		"resource_type": "azurerm_network_interface",
		"resource_name": "res-4"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-myResourceGroup-vm-d146/networkSecurityGroups/L3N1YnNjcmlwdGlvbnMvZGJmM2I2Y2ItYzFkMC00ZDA0LTk0YjktNTE1MDliOGQzM2ZkL3Jlc291cmNlR3JvdXBzL2hhc2hpY29uZi12bS1kZW1vL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrU2VjdXJpdHlHcm91cHMvdm0taGFzaGljb25mLXZtLWRlbW8tbnNn": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-myResourceGroup-vm-d146|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkSecurityGroups/vm-MyResourceGroup-nsg",
		"resource_type": "azurerm_network_interface_security_group_association",
		"resource_name": "res-5"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkSecurityGroups/vm-MyResourceGroup-nsg": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/networkSecurityGroups/vm-MyResourceGroup-nsg",
		"resource_type": "azurerm_network_security_group",
		"resource_name": "res-6"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/vm-MyResourceGroup-ip": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/vm-MyResourceGroup-ip",
		"resource_type": "azurerm_public_ip",
		"resource_name": "res-7"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyResourceGroup-vnet": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyResourceGroup-vnet",
		"resource_type": "azurerm_virtual_network",
		"resource_name": "res-8"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyResourceGroup-vnet/subnets/default": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyResourceGroup-vnet/subnets/default",
		"resource_type": "azurerm_subnet",
		"resource_name": "res-9"
	}
}

Csak a leképezési fájl objektumértékének van jelentősége. A kulcs (alapértelmezés szerint az Azure-ban resource_id) csak egy azonosító ebben a módban.

Tegyük fel, hogy meg szeretnénk tartani az erőforráscsoportot és a számítással kapcsolatos erőforrásokat, és módosítani szeretnénk az resource_name értéket.

A leképezési fájlt az alábbiak szerint frissíthetjük:

{
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
		"resource_type": "azurerm_resource_group",
		"resource_name": "myResourceGroup"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
		"resource_type": "azurerm_linux_virtual_machine",
		"resource_name": "myVM"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/sshPublicKeys/myKey": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/sshPublicKeys/myKey",
		"resource_type": "azurerm_ssh_public_key",
		"resource_name": "myKey"
	},
	"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-myResourceGroup/extensions/OmsAgentForLinux": {
		"resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm-myResourceGroup/extensions/OmsAgentForLinux",
		"resource_type": "azurerm_virtual_machine_extension",
		"resource_name": "myVMExtension"
	}
}

Miután szerkesztette a leképezési fájlt, exportálja a leképezési fájlt a következő paranccsal:

aztfexport map -n "aztfexportResourceMapping.json"

Profik:

  • Mivel fájlokat szerkeszt, szerkesztővel megkeresheti és lecserélheti az eltávolításhoz vagy szerkesztéshez szükséges elemeket.
  • A JSON-kimenet egyedi funkciókat tesz lehetővé, például a szkriptek szűrését.
  • Átnevezheti az erőforrásokat az elnevezési szabványoknak megfelelően.
  • A JSON több leképezési fájlba is újrabontásra képes.
  • Nagy mennyiségű erőforrást jól kezel.

Hátránya:

  • Egyszerű forgatókönyvek esetén ez a technika túlzás lehet.
  • Manuális módosításokat igényel.

Összesítés

Ebben a cikkben megismerhette az erőforrások szűrésének különböző lehetőségeit az Azure Export for Terraform használatával történő exportáláskor.

További lépések