[−][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:
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:
azure_functions::export! { 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. |