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
,query
mapping 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: