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.

Adds a permission to the resource policy associated with the specified AWS Lambda function. You use resource policies to grant permissions to event sources that use push model. In a push model, event sources (such as Amazon S3 and custom applications) invoke your Lambda function. Each permission you add to the resource policy allows an event source, permission to invoke the Lambda function.

For information about the push model, see AWS Lambda: How it Works.

If you are using versioning, the permissions you add are specific to the Lambda function version or alias you specify in the AddPermission request via the Qualifier parameter. For more information about versioning, see AWS Lambda Function Versioning and Aliases.

This operation requires permission for the lambda:AddPermission action.


For .NET Core, PCL and Unity this operation is only available in asynchronous form. Please refer to AddPermissionAsync.

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


public virtual AddPermissionResponse AddPermission(
         AddPermissionRequest request
Type: Amazon.Lambda.Model.AddPermissionRequest

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

Return Value
The response from the AddPermission service method, as returned by Lambda.


InvalidParameterValueException One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.
PolicyLengthExceededException Lambda function access policy is limited to 20 KB.
PreconditionFailedException The RevisionId provided does not match the latest RevisionId for the Lambda function or alias. Call the GetFunction or the GetAlias API to retrieve the latest RevisionId for your resource.
ResourceConflictException The resource already exists.
ResourceNotFoundException The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.
ServiceException The AWS Lambda service encountered an internal error.


This example adds a permission for an S3 bucket to invoke a Lambda function.


var response = client.AddPermission(new AddPermissionRequest 
    Action = "lambda:InvokeFunction",
    FunctionName = "MyFunction",
    Principal = "",
    SourceAccount = "123456789012",
    SourceArn = "arn:aws:s3:::examplebucket/*",
    StatementId = "ID-1"

string statement = response.Statement;


Version Information

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

Portable Class Library:
Supported in: Windows Store Apps
Supported in: Windows Phone 8.1
Supported in: Xamarin Android
Supported in: Xamarin iOS (Unified)
Supported in: Xamarin.Forms

Supported Versions: 4.6 and above
Supported Platforms: Android, iOS, Standalone

See Also