[][src]Crate azure_functions

Azure Functions for Rust

The Azure Functions for Rust crate supports creating Azure Functions with Rust.

The following Azure Functions trigger bindings are supported:

The following Azure Functions input bindings are supported:

The following Azure Functions output bindings are supported:

Eventually more bindings will be implemented, including custom binding data.

Example

Start by installing the Azure Functions for Rust SDK:

$ cargo install azure-functions-sdk

Create a new Azure Functions for Rust application:

$ cargo func new-app hello && cd hello

Azure Functions are implemented by applying a #[func] attribute to a Rust function.

For example, let's create src/functions/hello.rs that implements a HTTP triggered function:

This example is not tested
use azure_functions::func;
use azure_functions::bindings::{HttpRequest, HttpResponse};

#[func]
#[binding(name = "request", auth_level = "anonymous")]
pub fn hello(request: &HttpRequest) -> HttpResponse {
    // Log the request on the Azure Functions Host
    info!("Request: {:?}", request);

    // Return a formatted string as the response
    format!(
        "Hello from Rust, {}!",
        request.query_params().get("name").map_or("stranger", |x| x)
    ).into()
}

Export the Azure Function by changing src/functions/mod.rs to:

This example is not tested
mod hello;

pub const FUNCTIONS: &[&azure_functions::codegen::Function] = azure_functions::export! {
    hello::hello,
};

Run the application with cargo func run:

$ cargo func run

The above Azure Function can be invoked with http://localhost:8080/api/hello?name=Peter.

The expected response would be Hello from Rust, Peter!.

Re-exports

pub use azure_functions_codegen::func;
pub use azure_functions_codegen::export;

Modules

bindings

Module for Azure Functions bindings.

blob

Module for blob storage types.

http

Module for HTTP types.

timer

Module for timer types.

Structs

Context

Represents context about an Azure Function invocation.

Functions

worker_main

The main entry point for the Azure Functions for Rust worker.