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)
    )
    .zip(zip)
    .handler("index.handler")
    .runtime(Runtime::NodeJs22)
    .env_var_string(env_var_key!("TABLE_NAME"), "my-table")
    .build(&mut stack_builder);

Implementations§

Source§

impl<T> FunctionBuilder<T>

Source

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

Source

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

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>

Source

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

Source

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

Source§

impl FunctionBuilder<StartState>

Source

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

Creates a new Lambda function builder.

§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 zip(self, zip: Zip) -> FunctionBuilder<ZipState>

Source§

impl FunctionBuilder<ZipState>

Source

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

Source§

impl FunctionBuilder<ZipStateWithHandler>

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,