Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Obtén más información sobre cómo usar Azure Python con Azure Resource Manager para administrar tus recursos de Azure. Para administrar grupos de recursos, consulta Administrar grupos de recursos de Azure mediante Python.
Implementación de recursos en un grupo de recursos existente
Puedes implementar recursos de Azure directamente mediante Python o implementar una plantilla de Azure Resource Manager (plantilla ARM) para crear recursos de Azure.
Implementación de recursos mediante clases de Python
En el ejemplo siguiente se crea una cuenta de almacenamiento mediante StorageManagementClient.storage_accounts.begin_create. El nombre para la cuenta de almacenamiento debe ser único en Azure.
import os
import random
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
random_postfix = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz1234567890', k=13))
storage_account_name = "demostore" + random_postfix
storage_client = StorageManagementClient(credential, subscription_id)
storage_account_result = storage_client.storage_accounts.begin_create(
"exampleGroup",
storage_account_name,
{
"location": "westus",
"sku": {
"name": "Standard_LRS"
}
}
)
Implementación de una plantilla
Para implementar una plantilla de ARM, use ResourceManagementClient.deployments.begin_create_or_update. En el ejemplo siguiente, se implementa una plantilla remota. Esta plantilla crea una cuenta de almacenamiento.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.resources.models import DeploymentMode
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
resource_group_name = input("Enter the resource group name: ")
location = input("Enter the location (i.e. centralus): ")
template_uri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json"
rg_deployment_result = resource_client.deployments.begin_create_or_update(
resource_group_name,
"exampleDeployment",
{
"properties": {
"templateLink": {
"uri": template_uri
},
"parameters": {
"location": {
"value": location
},
},
"mode": DeploymentMode.incremental
}
}
)
Implementación de un grupo de recursos y de recursos
Puede crear un grupo de recursos e implementar recursos en el grupo. Para más información, consulte Creación de un grupo de recursos e implementación de recursos.
Implementación de recursos en varias suscripciones o grupos de recursos
Por lo general, todos los recursos de la plantilla se implementan en un único grupo de recursos. Sin embargo, existen escenarios en los que desea implementar un conjunto de recursos juntos pero colocarlos en distintos grupos de recursos o suscripciones. Para obtener más información, consulte Implementación de recursos en Azure en varias suscripciones o grupos de recursos.
Eliminar recursos
El ejemplo siguiente muestra cómo eliminar una cuenta de almacenamiento.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
storage_client = StorageManagementClient(credential, subscription_id)
resource_group_name = "demoGroup"
storage_account_name = "demostore"
storage_account = storage_client.storage_accounts.delete(
resource_group_name,
storage_account_name
)
Para obtener más información sobre cómo ordena Azure Resource Manager la eliminación de recursos, consulte Eliminación del grupo de recursos en Azure Resource Manager.
Traslado de recursos
El siguiente ejemplo muestra cómo mover una cuenta de almacenamiento de un grupo de recursos a otro grupo de recursos.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
src_resource_group_name = "sourceGroup"
dest_resource_group_name = "destinationGroup"
storage_account_name = "demostore"
dest_resource_group = resource_client.resource_groups.get(dest_resource_group_name)
storage_account = resource_client.resources.get(
src_resource_group_name, "Microsoft.Storage", "", "storageAccounts", storage_account_name, "2022-09-01"
)
move_result = resource_client.resources.begin_move_resources(
src_resource_group_name,
{
"resources": [storage_account.id],
"targetResourceGroup": dest_resource_group.id,
}
)
Para obtener más información, consulte Traslado de los recursos a un nuevo grupo de recursos o a una nueva suscripción.
Bloqueo de recursos
Los bloqueos impiden que otros usuarios de la organización eliminen o modifiquen por error recursos esenciales, como una suscripción de Azure, un grupo de recursos o un recurso.
El siguiente ejemplo bloquea un sitio web para que no se pueda eliminar.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_level(
"exampleGroup",
"Microsoft.Web",
"",
"sites",
"examplesite",
"lockSite",
{
"level": "CanNotDelete"
}
)
El script siguiente obtiene todos los bloqueos de una cuenta de almacenamiento:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.locks import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
lock_client = ManagementLockClient(credential, subscription_id)
resource_group_name = "demoGroup"
storage_account_name = "demostore"
resource = resource_client.resources.get_by_id(
f"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Storage/storageAccounts/{storage_account_name}",
"2021-04-01"
)
locks = lock_client.management_locks.list_at_resource_level(
resource_group_name,
"Microsoft.Storage",
"",
"storageAccounts",
storage_account_name
)
for lock in locks:
print(f"Lock Name: {lock.name}, Lock Level: {lock.level}")
El siguiente script elimina un bloqueo de un sitio web:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_level(
"exampleGroup",
"Microsoft.Web",
"",
"sites",
"examplesite",
"lockSite"
)
Para obtener más información, consulte Bloqueo de recursos con el Administrador de recursos de Azure.
Etiquetado de recursos
El etiquetado le ayuda a organizar lógicamente el grupo de recursos y los recursos. Para obtener información, vea Uso de etiquetas para organizar los recursos de Azure.
Pasos siguientes
- Para obtener información sobre Azure Resource Manager, consulte Información general de Azure Resource Manager.
- Para obtener información sobre la sintaxis de las plantillas de Resource Manager, consulte Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.
- Para obtener información sobre cómo desarrollar plantillas, consulte los tutoriales paso a paso.
- Para ver los esquemas de plantilla de Azure Resource Manager, vea la referencia de plantilla.