AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing.

If the deployment package is a container image, then you set the package type to Image. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.

If the deployment package is a .zip file archive, then you set the package type to Zip. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64). If you do not specify the architecture, then the default value is x86-64.

When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The State, StateReason, and StateReasonCode fields in the response from GetFunctionConfiguration indicate when the function is ready to invoke. For more information, see Lambda function states.

A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the Publish parameter to create version 1 of your function from its initial configuration.

The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply to both the unpublished and published versions of the function, and include tags (TagResource) and per-function concurrency limits (PutFunctionConcurrency).

You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set of signing profiles, which define the trusted publishers for this function.

If another Amazon Web Services account or an Amazon Web Service invokes your function, use AddPermission to grant permission by creating a resource-based Identity and Access Management (IAM) policy. You can grant permissions at the function level, on a version, or on an alias.

To invoke your function directly, use Invoke. To invoke your function in response to events in other Amazon Web Services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Lambda functions.

Note:

For .NET Core this operation is only available in asynchronous form. Please refer to CreateFunctionAsync.

Namespace: Amazon.Lambda
Assembly: AWSSDK.Lambda.dll
Version: 3.x.y.z

Syntax

C#
public virtual CreateFunctionResponse CreateFunction(
         CreateFunctionRequest request
)

Parameters

request
Type: Amazon.Lambda.Model.CreateFunctionRequest

Container for the necessary parameters to execute the CreateFunction service method.

Return Value


The response from the CreateFunction service method, as returned by Lambda.

Exceptions

ExceptionCondition
CodeSigningConfigNotFoundException The specified code signing configuration does not exist.
CodeStorageExceededException Your Amazon Web Services account has exceeded its maximum total code size. For more information, see Lambda quotas.
CodeVerificationFailedException The code signature failed one or more of the validation checks for signature mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda blocks the deployment.
InvalidCodeSignatureException The code signature failed the integrity check. If the integrity check fails, then Lambda blocks deployment, even if the code signing policy is set to WARN.
InvalidParameterValueException One of the parameters in the request is not valid.
ResourceConflictException The resource already exists, or another operation is in progress.
ResourceNotFoundException The resource specified in the request does not exist.
ServiceException The Lambda service encountered an internal error.
TooManyRequestsException The request throughput limit was exceeded. For more information, see Lambda quotas.

Examples

The following example creates a function with a deployment package in Amazon S3 and enables X-Ray tracing and environment variable encryption.

To create a function


var response = client.CreateFunction(new CreateFunctionRequest 
{
    Code = new FunctionCode {
        S3Bucket = "my-bucket-1xpuxmplzrlbh",
        S3Key = "function.zip"
    },
    Description = "Process image objects from Amazon S3.",
    Environment = new Environment { Variables = new Dictionary<string, string> {
        { "BUCKET", "my-bucket-1xpuxmplzrlbh" },
        { "PREFIX", "inbound" }
    } },
    FunctionName = "my-function",
    Handler = "index.handler",
    KMSKeyArn = "arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966",
    MemorySize = 256,
    Publish = true,
    Role = "arn:aws:iam::123456789012:role/lambda-role",
    Runtime = "nodejs12.x",
    Tags = new Dictionary<string, string> {
        { "DEPARTMENT", "Assets" }
    },
    Timeout = 15,
    TracingConfig = new TracingConfig { Mode = "Active" }
});

string codeSha256 = response.CodeSha256;
long codeSize = response.CodeSize;
string description = response.Description;
EnvironmentResponse environment = response.Environment;
string functionArn = response.FunctionArn;
string functionName = response.FunctionName;
string handler = response.Handler;
string kmsKeyArn = response.KMSKeyArn;
string lastModified = response.LastModified;
string lastUpdateStatus = response.LastUpdateStatus;
int memorySize = response.MemorySize;
string revisionId = response.RevisionId;
string role = response.Role;
string runtime = response.Runtime;
string state = response.State;
int timeout = response.Timeout;
TracingConfigResponse tracingConfig = response.TracingConfig;
string version = response.Version;

            

Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

See Also