Skip to main content

Worker

Struct Worker 

Source
pub struct Worker {
    pub id: String,
    pub links: Vec<ResourceRef>,
    pub triggers: Vec<WorkerTrigger>,
    pub public_endpoints: Vec<WorkerPublicEndpoint>,
    pub permissions: String,
    pub code: WorkerCode,
    pub memory_mb: u32,
    pub timeout_seconds: u32,
    pub environment: HashMap<String, String>,
    pub commands_enabled: bool,
    pub concurrency_limit: Option<u32>,
    pub readiness_probe: Option<ReadinessProbe>,
}
Expand description

Represents a serverless worker that executes code in response to triggers or direct invocations. Workers are the primary compute resource in serverless applications, designed to be stateless and ephemeral.

Fields§

§id: String

Identifier for the worker. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters.

§links: Vec<ResourceRef>

List of resource references this worker depends on.

§triggers: Vec<WorkerTrigger>

List of triggers that define what events automatically invoke this worker. If empty, the worker is only invokable directly via HTTP calls or platform-specific invocation APIs. When configured, the worker will be automatically invoked when any of the specified trigger conditions are met.

§public_endpoints: Vec<WorkerPublicEndpoint>

Public endpoints exposed by this worker.

§permissions: String

Permission profile name that defines the permissions granted to this worker. This references a profile defined in the stack’s permission definitions.

§code: WorkerCode

Code for the worker, either a pre-built image or source code to be built.

§memory_mb: u32

Memory allocated to the worker in megabytes (MB). Default: 512

Platform-specific constraints:

  • AWS Lambda: 128–10240 MB in 1 MB increments
  • GCP Cloud Run: 128–32768 MB
  • Azure Container Apps: fixed CPU/memory pairs — 512, 1024, 1536, 2048, 2560, 3072, 3584, 4096 MB. Values below 512 are automatically rounded up at deploy time.
§timeout_seconds: u32

Maximum execution time for the worker in seconds. Constraints: 1‑3600 seconds (platform-specific limits may apply) Default: 180

§environment: HashMap<String, String>

Key-value pairs to set as environment variables for the worker.

§commands_enabled: bool

Whether the worker can receive remote commands via the Commands protocol. When enabled, the platform pushes commands into the Worker runtime, which executes registered handlers.

§concurrency_limit: Option<u32>

Maximum number of concurrent executions allowed for the worker. None means platform default applies.

§readiness_probe: Option<ReadinessProbe>

Optional readiness probe configuration. Only applicable for workers with Public ingress. When configured, the probe will be executed after provisioning/update to verify the worker is ready.

Implementations§

Source§

impl Worker

Source

pub fn new(id: String) -> WorkerBuilder

Create an instance of Worker using the builder syntax

Source§

impl Worker

Source

pub const RESOURCE_TYPE: ResourceType

The resource type identifier for Workers

Source

pub fn get_permissions(&self) -> &str

Returns the permission profile name for this worker.

Trait Implementations§

Source§

impl Clone for Worker

Source§

fn clone(&self) -> Worker

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Worker

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Worker

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Worker

Source§

impl PartialEq for Worker

Source§

fn eq(&self, other: &Worker) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl ResourceDefinition for Worker

Source§

fn get_resource_type(&self) -> ResourceType

Returns the resource type for this instance
Source§

fn id(&self) -> &str

Returns the unique identifier for this specific resource instance
Source§

fn get_dependencies(&self) -> Vec<ResourceRef>

Returns the list of other resources this resource depends on
Source§

fn get_permissions(&self) -> Option<&str>

Returns the permission profile name for this resource, if it has one. Read more
Source§

fn validate_update(&self, new_config: &dyn ResourceDefinition) -> Result<()>

Validates if an update from the current configuration to a new configuration is allowed
Source§

fn as_any(&self) -> &dyn Any

Provides access to the underlying concrete type for downcasting
Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Provides mutable access to the underlying concrete type for downcasting
Source§

fn box_clone(&self) -> Box<dyn ResourceDefinition>

Creates a boxed clone of this resource definition
Source§

fn resource_eq(&self, other: &dyn ResourceDefinition) -> bool

For equality comparison between resource definitions
Source§

fn to_json_value(&self) -> Result<Value>

Serialize this resource to a JSON value (without the “type” tag - that’s added by Resource)
The links this definition owns, excluding triggers and ordering edges.
Mutable access, for dropping links to resources leaving the stack.
Source§

impl Serialize for Worker

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Worker

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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