A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Azure-Samples/azure-functions-blob-sdk-bindings-python below:

GitHub - Azure-Samples/azure-functions-blob-sdk-bindings-python

name description languages products page_type urlFragment

Blob SDK-Type Bindings with Azure Functions (Python)

Bind to rich SDK types when using blob trigger or blob input.

python

azure

azure-functions

azure-storage-blob

sdk-bindings

sample

blob-sdk-type-bindings-with-azure-functions

Blob SDK-Type Bindings with Azure Functions (Python)

This sample demonstrates how to use the Azure Functions Blob SDK-type bindings in Python. The supported SDK types include BlobClient, ContainerClient, and StorageStreamDownloader.

You can learn more about SDK-type bindings for blob in the SDK-type Bindings for Python Reference.

Before running the sample, you need the following:

  1. Azure Subscription: An Azure account is required.

  2. Azure Functions Core Tools: Install Azure Functions Core Tools to run and test functions locally.

  3. Python 3.x: Ensure Python 3.9 or later is installed on your machine.

  4. Azure Storage Account: Create a storage account via the Azure Portal and get the connection string.

Using SDK-type Bindings for Blob in an Azure Function App

The code in the sample folder has already been updated to support use of SDK-type bindings for blob. Let's walk through the changed files.

The requirements.txt file has an additional dependency of the azurefunctions-extensions-bindings-blob module:

azure-functions
azurefunctions-extensions-bindings-blob

Each blob_samples_* folder contains function_app.py which imports the azurefunctions-extensions-bindings-blob module.

import azure.functions as func
import azurefunctions.extensions.bindings.blob as blob

In each function_app.py file, there are two functions defined: a blob trigger and a blob input. Both of these functions specify an arg named client and define the type as an SDK-type.

The blob_samples_blobclient directory shows the type defined as BlobClient.

@app.blob_trigger(
    arg_name="client", path="PATH/TO/BLOB", connection="AzureWebJobsStorage"
)
def blob_trigger(client: blob.BlobClient):

The blob_samples_containerclient directory shows the type defined as ContainerClient, and the blob_samples_storagestreamdownloader directory shows the type defined as StorageStreamDownloader.

  1. Clone the repository:
        git clone https://github.com/Azure-Samples/azure-functions-blob-sdk-bindings-python.git
    
  2. Navigate to one of the project directories:
        cd blob_samples_blobclient
    
  3. Create a Python virtual environment and activate it.
  4. Install the required dependencies:
        pip install -r requirements.txt
    
  5. Update local.settings.json: replace StorageConnection with your storage account connection string.
  6. Update the blob path: in function_app.py, replace PATH/TO/BLOB with your blob path.
  7. Start the function: If you are using VS Code for development, click the "Run and Debug" button or follow the instructions for running a function locally. Outside of VS Code, follow these instructions for using Core Tools commands directly to run the function locally.
        Functions:
                blob_input:  http://localhost:7071/api/file
                blob_trigger: blobTrigger
    
  8. Execute the function:
       Python blob trigger function processed blob
       Properties: {...}
       Blob content head: ...
    
       Python blob input function processed blob
       Properties: {...}
       Blob content head: ...
    

There are three main ways to deploy this to Azure:

All approaches will provision a Function App, Storage account (to store the code), and a Log Analytics workspace.

Visit the SDK-type bindings in Python reference documentation to learn more about how to use SDK-type bindings in a Python Function App and the API reference documentation to learn more about what you can do with the Azure Storage Blob client library.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4