{"library":"prefect-azure","title":"Prefect Azure Integration","description":"prefect-azure provides a collection of Prefect integrations for orchestrating workflows with Microsoft Azure services. It enables interaction with Azure Blob Storage, Azure Key Vault, Azure Container Instances (ACI), and more. The library is actively maintained, with releases typically aligning with the Prefect core development cycle, and the current version is 0.4.9.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install prefect-azure","pip install \"prefect-azure[blob_storage]\"","pip install \"prefect-azure[cosmos_db]\"","pip install \"prefect-azure[ml_datastore]\"","pip install \"prefect-azure[all_extras]\""],"cli":null},"imports":["from prefect_azure.blob_storage import AzureBlobStorageContainer","from prefect_azure import AzureBlobStorageCredentials","from prefect_azure.blob_storage import blob_storage_download","from prefect_azure.container_instance import AzureContainerInstanceJob"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom prefect import flow\nfrom prefect_azure import AzureBlobStorageCredentials\nfrom prefect_azure.blob_storage import blob_storage_download, AzureBlobStorageContainer\n\n# Before running the flow, ensure the block is registered and saved (e.g., via CLI or a separate script):\n# prefect block register -m prefect_azure\n# From Python:\n# blob_creds = AzureBlobStorageCredentials(connection_string=os.environ.get('AZURE_STORAGE_CONNECTION_STRING', ''))\n# blob_creds.save(name=\"my-blob-creds\")\n# blob_container_block = AzureBlobStorageContainer(\n#    container_name=\"my-container\", \n#    credentials=blob_creds\n# )\n# blob_container_block.save(name=\"my-blob-container\")\n\n@flow\ndef example_blob_storage_download_flow():\n    # Load credentials block (assuming it was saved with 'my-blob-creds')\n    # In a real scenario, connection_string should be fetched securely (e.g., from Azure Key Vault or Prefect Secret Block)\n    # or derived from environment variables/managed identity via DefaultAzureCredential.\n    connection_string = os.environ.get('AZURE_STORAGE_CONNECTION_STRING', '')\n    \n    if not connection_string:\n        print(\"Warning: AZURE_STORAGE_CONNECTION_STRING environment variable not set. Using dummy string.\")\n        # Fallback for example, in real world this would likely fail or use DefaultAzureCredential\n        blob_storage_credentials = AzureBlobStorageCredentials()\n    else:\n        blob_storage_credentials = AzureBlobStorageCredentials(connection_string=connection_string)\n    \n    # If the AzureBlobStorageContainer block was saved via the UI or another script:\n    # my_blob_container_block = AzureBlobStorageContainer.load(\"my-blob-container\")\n    # Instead, we create an ad-hoc one for this example's simplicity\n    my_blob_container_block = AzureBlobStorageContainer(\n        container_name=\"prefect\", # Replace with your container name\n        credentials=blob_storage_credentials\n    )\n\n    print(f\"Attempting to download 'prefect.txt' from container 'prefect'...\")\n    data = blob_storage_download(\n        blob=\"prefect.txt\", # Replace with your blob name\n        container=\"prefect\", # Or use my_blob_container_block directly if it defines the container\n        blob_storage_credentials=blob_storage_credentials,\n    )\n    print(f\"Downloaded data (first 100 chars): {data[:100].decode()}\")\n    return data\n\nif __name__ == \"__main__\":\n    # Set a dummy connection string for local testing if not already set\n    # For actual Azure access, replace with a real connection string or use Azure identity management\n    # os.environ['AZURE_STORAGE_CONNECTION_STRING'] = 'DefaultEndpointsProtocol=https;AccountName=youraccount;AccountKey=yourkey;EndpointSuffix=core.windows.net'\n    example_blob_storage_download_flow()","lang":"python","description":"This quickstart demonstrates how to download a file from Azure Blob Storage using the `prefect-azure` integration. It highlights the use of `AzureBlobStorageCredentials` and the `blob_storage_download` task. For actual usage, `AZURE_STORAGE_CONNECTION_STRING` should be set as an environment variable or credentials should be managed via Prefect Blocks and Azure's identity features. It also emphasizes the importance of registering Prefect Blocks for discovery.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.4.6","pypi_latest":"0.4.10","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":27.5,"avg_import_s":8.56,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.43,"mem_mb":69.9,"disk_size":"320.7M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.19,"mem_mb":69.9,"disk_size":"320.7M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.21,"mem_mb":69.9,"disk_size":"320.7M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.13,"mem_mb":69.9,"disk_size":"320.7M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.1,"mem_mb":69.9,"disk_size":"320.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":30,"import_time_s":6.91,"mem_mb":69.9,"disk_size":"323M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.8,"import_time_s":6.95,"mem_mb":69.9,"disk_size":"323M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.7,"import_time_s":7.15,"mem_mb":69.9,"disk_size":"323M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.9,"import_time_s":6.92,"mem_mb":69.9,"disk_size":"323M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.7,"import_time_s":6.8,"mem_mb":69.9,"disk_size":"323M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":0.1,"import_time_s":11.41,"mem_mb":118.4,"disk_size":"510.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":9.32,"mem_mb":84.5,"disk_size":"363.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.91,"mem_mb":78.8,"disk_size":"361.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":0.1,"import_time_s":11,"mem_mb":110.9,"disk_size":"500.3M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.86,"mem_mb":76.5,"disk_size":"357.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":39.4,"import_time_s":9.96,"mem_mb":118.4,"disk_size":"513M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.2,"import_time_s":8.44,"mem_mb":84.5,"disk_size":"366M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.4,"import_time_s":8.1,"mem_mb":78.8,"disk_size":"364M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":38.5,"import_time_s":9.96,"mem_mb":110.9,"disk_size":"503M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":28.6,"import_time_s":8.24,"mem_mb":76.5,"disk_size":"360M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":9.86,"mem_mb":115.6,"disk_size":"502.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.37,"mem_mb":82.5,"disk_size":"359.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.19,"mem_mb":76.9,"disk_size":"357.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":9.74,"mem_mb":108.3,"disk_size":"492.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":7.9,"mem_mb":74.6,"disk_size":"353.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":33.5,"import_time_s":9.83,"mem_mb":115.6,"disk_size":"506M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":24.7,"import_time_s":8.59,"mem_mb":82.5,"disk_size":"363M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":24.6,"import_time_s":8.19,"mem_mb":76.9,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":33,"import_time_s":9.77,"mem_mb":108.3,"disk_size":"495M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":24.4,"import_time_s":8.31,"mem_mb":74.6,"disk_size":"357M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":9.22,"mem_mb":117.7,"disk_size":"497.9M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":7.92,"mem_mb":82.8,"disk_size":"356.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":7.69,"mem_mb":77.3,"disk_size":"354.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":8.9,"mem_mb":110.5,"disk_size":"487.9M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":7.55,"mem_mb":75.1,"disk_size":"350.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":33.9,"import_time_s":9.51,"mem_mb":117.7,"disk_size":"501M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":25.4,"import_time_s":8.1,"mem_mb":82.8,"disk_size":"359M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":25.4,"import_time_s":7.69,"mem_mb":77.3,"disk_size":"358M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":32.8,"import_time_s":9.32,"mem_mb":110.5,"disk_size":"491M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":24.1,"import_time_s":7.69,"mem_mb":75.1,"disk_size":"354M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"all_extras","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":29,"import_time_s":null,"mem_mb":null,"disk_size":"198M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"blob_storage","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":28.8,"import_time_s":null,"mem_mb":null,"disk_size":"198M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"cosmos_db","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":29,"import_time_s":null,"mem_mb":null,"disk_size":"198M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ml_datastore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":28.9,"import_time_s":null,"mem_mb":null,"disk_size":"198M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"prefect-azure","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":29.4,"import_time_s":null,"mem_mb":null,"disk_size":"198M"}]}}