Skip to main content

FunctionBuilder

Struct FunctionBuilder 

Source
pub struct FunctionBuilder<T>{ /* private fields */ }
Expand description

Builder for creating AWS Lambda functions.

This builder provides a fluent API for configuring Lambda functions with their associated IAM roles, environment variables, permissions, and event sources.

§Example

use rusty_cdk_core::stack::StackBuilder;
use rusty_cdk_core::lambda::{FunctionBuilder, Architecture, Runtime, Zip};
use rusty_cdk_core::wrappers::*;
use rusty_cdk_macros::{memory, timeout, env_var_key, zip_file};

let mut stack_builder = StackBuilder::new();

let zip = unimplemented!("create a zip");

let (function, role, log_group) = FunctionBuilder::new(
        "my-function",
        Architecture::ARM64,
        memory!(512),
        timeout!(30)
    )
    .code(zip)
    .handler("index.handler")
    .runtime(Runtime::NodeJs22)
    .env_var_string(env_var_key!("TABLE_NAME"), "my-table")
    .build(&mut stack_builder);

See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html

Implementations§

Source§

impl<T> FunctionBuilder<T>

Source

pub fn function_name( self, name: StringWithOnlyAlphaNumericsUnderscoresAndHyphens, ) -> FunctionBuilder<T>

Sets a custom name for the function.

If not specified, a name will be generated automatically.

§Arguments
  • name - The name for the function.
Source

pub fn add_permission(self, permission: Permission<'_>) -> FunctionBuilder<T>

Adds an IAM permission to the functions execution role.

§Arguments
  • permission - The IAM permission to add.
Source

pub fn check_permissions_against_dependencies( self, cargo_toml: TomlFile, ) -> FunctionBuilder<T>

Checks that the function has permissions for AWS services listed in Cargo.toml dependencies.

Parses the Cargo.toml to find AWS SDK dependencies and verifies that IAM permissions have been granted for those services.

Source

pub fn env_var(self, key: EnvVarKey, value: Value) -> FunctionBuilder<T>

Adds an environment variable to the function. If you just want to set a string as the environment variable value, use env_var_string

§Arguments
  • key - The name of the environment variable.
  • value - The value of the environment variable, as a serde_json::Value.
Source

pub fn env_var_string<V>(self, key: EnvVarKey, value: V) -> FunctionBuilder<T>
where V: Into<String>,

Adds a string environment variable to the function.

§Arguments
  • key - The name of the environment variable.
  • value - The string value of the environment variable.
Source

pub fn reserved_concurrent_executions( self, executions: u32, ) -> FunctionBuilder<T>

Sets the number of reserved concurrent executions for the function.

§Arguments
  • executions - The number of reserved concurrent executions.
Source

pub fn log_group(self, log_group: &LogGroupRef) -> FunctionBuilder<T>

Use a custom log group for this function. If no log group is set, once is created automatically

Source§

impl FunctionBuilder<StartState>

Source

pub fn new( id: &str, architecture: Architecture, memory: Memory, timeout: Timeout, ) -> FunctionBuilder<StartState>

Creates a new Lambda function builder. You will have to specify a handler and runtime before you are able to build a function.

§Arguments
  • id - Unique identifier for the function
  • architecture - CPU architecture (x86_64 or ARM64)
  • memory - Memory allocation in MB
  • timeout - Maximum execution time
Source

pub fn code(self, code: Code) -> FunctionBuilder<CodeState>

Sets the source code for the function.

This can either be a zip file from S3 or inline code.

§Arguments
  • code - The functions source code.
Source§

impl FunctionBuilder<CodeState>

Source

pub fn handler<T>(self, handler: T) -> FunctionBuilder<ZipStateWithHandler>
where T: Into<String>,

Sets the functions handler.

This is the entry point for the function, e.g., “index.handler”, “bootstrap” (for ‘provided’ runtimes), etc.

§Arguments
  • handler - The function handler.
Source§

impl FunctionBuilder<ZipStateWithHandler>

Source

pub fn runtime( self, runtime: Runtime, ) -> FunctionBuilder<ZipStateWithHandlerAndRuntime>

Sets the functions runtime.

§Arguments
  • runtime - The runtime environment for the function.
Source§

impl FunctionBuilder<ZipStateWithHandlerAndRuntime>

Source

pub fn sqs_event_source_mapping( self, sqs_queue: &QueueRef, max_concurrency: Option<SqsEventSourceMaxConcurrency>, ) -> FunctionBuilder<EventSourceMappingState>

Configures the function to be triggered by an SQS queue.

Automatically adds the necessary IAM permissions for reading from the queue.

Source

pub fn build( self, stack_builder: &mut StackBuilder, ) -> (FunctionRef, RoleRef, LogGroupRef)

Builds the Lambda function and adds it to the stack.

Creates the function along with its IAM execution role and CloudWatch log group. Returns references to all three resources.

Source§

impl FunctionBuilder<EventSourceMappingState>

Source

pub fn build( self, stack_builder: &mut StackBuilder, ) -> (FunctionRef, RoleRef, LogGroupRef)

Builds the Lambda function and adds it to the stack.

Creates the function along with its IAM execution role, CloudWatch log group, and event source mapping. Returns references to the function, role, and log group.

Auto Trait Implementations§

§

impl<T> Freeze for FunctionBuilder<T>

§

impl<T> RefUnwindSafe for FunctionBuilder<T>
where T: RefUnwindSafe,

§

impl<T> Send for FunctionBuilder<T>
where T: Send,

§

impl<T> Sync for FunctionBuilder<T>
where T: Sync,

§

impl<T> Unpin for FunctionBuilder<T>
where T: Unpin,

§

impl<T> UnwindSafe for FunctionBuilder<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more