AWS Lambda is the AWS serverless compute service. Polysync uses the official AWS SDK for .NET v4 (AWSSDK.Lambda and AWSSDK.SecurityToken) to list functions, invoke them with a JSON event payload, parse output parameters from the response, and surface a direct link to the AWS Lambda console for monitoring.
us-east-1, ap-southeast-2). All Lambda API calls are region-scoped.RequestResponse (synchronous, default), Event (asynchronous fire-and-forget), or DryRun (validation only).PROD, 1). Omit to invoke $LATEST.Both can be overridden per Polysync Job. Precedence: job override → platform default → RequestResponse (no qualifier).
sts:AssumeRoleWithWebIdentity. No long-lived secrets stored. Required attributes: Role ARN.
https://login.microsoftonline.com/<polysync-tenant-id>/v2.0) with audience sts.amazonaws.com.sts:AssumeRoleWithWebIdentity from that provider with a condition on the Polysync workload identity's sub/oid claim.sts:AssumeRole on the target role; the assumed role holds the Lambda permissions.The role / user used to call Lambda must hold (at minimum):
lambda:ListFunctions — discover available functions.lambda:GetFunction — read function metadata, including environment variables.lambda:InvokeFunction — invoke functions (scope to specific function ARNs in production).Plus any IAM permissions the Lambda execution role needs to access downstream AWS services (defined on the Lambda's role, not the Polysync caller).
Polysync calls ListFunctions (paginated via Marker) and imports each Lambda function as a Polysync Job. Because Lambda has no formal event-schema declaration, the function's environment variables are imported as suggested input parameter defaults — they're the closest discoverable surface and typically correspond to keys the function expects in its event payload. Users can add, remove, or rename parameters and assign Direction metadata (Input, Output, InputOutput).
Invocation Type = RequestResponse. The provider parses the response as JSON and updates any parameter whose Direction is Output or Input&Output and whose name matches a top-level property of the response (case-insensitive).Event (asynchronous) invocations, no response payload is available; output parameters are not populated.ExecutePipelineAsync resolves the effective invocation type and qualifier, builds the JSON event payload, then calls InvokeAsync(FunctionName, InvocationType, Payload, Qualifier).RequestResponse: HTTP 200 + no FunctionError → Success; FunctionError set (Handled / Unhandled) → Failed.Event: HTTP 202 Accepted → Success (queued); anything else → Failed.DryRun: HTTP 204 No Content → Success (permissions and resource validated); otherwise → Failed.{functionName}/{awsRequestId}#{status}. AWS Lambda has no GetInvocation API, so GetPipelineRunStatusAsync decodes the status from the RunId rather than calling AWS again.CancelPipelineRunAsync returns false — AWS Lambda does not support cancelling an in-flight invocation.https://{region}.console.aws.amazon.com/lambda/home?region={region}#/functions/{functionName}?tab=monitoring
This deep-links into the AWS Lambda console for the specific function, showing invocation metrics, recent CloudWatch logs, and configuration. For Event invocations, the monitoring tab is the primary way to confirm execution outcomes.
AccessDeniedException on InvokeFunction — the caller's IAM principal is missing lambda:InvokeFunction on arn:aws:lambda:{region}:{account}:function:{functionName}.ResourceNotFoundException — confirm the function name (and Qualifier, if any) is correct in the target region.Handled / Unhandled FunctionError — the function returned a runtime error. The response payload (truncated, if small) is surfaced on the Polysync run message. Check CloudWatch Logs for the full stack trace.InvalidIdentityToken — check that the IAM Identity Provider's thumbprint matches login.microsoftonline.com, the audience is sts.amazonaws.com, and the role trust policy allows the Polysync workload identity's sub / oid.RequestResponse, the response is a valid JSON object (not a JSON string, number, or array at the root), the parameter's Direction is Output or Input&Output, and the parameter name matches a top-level property name in the response (case-insensitive).