Class: Aws::Lambda::Client

Inherits:
Seahorse::Client::Base
  • Object
show all
Includes:
ClientStubs
Defined in:
lib/aws-sdk-lambda/client.rb

Class Attribute Summary collapse

API Operations collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • ‘Aws::Credentials` - Used for configuring static, non-refreshing credentials.

    • ‘Aws::InstanceProfileCredentials` - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • ‘Aws::SharedCredentials` - Used for loading credentials from a shared file, such as `~/.aws/config`.

    • ‘Aws::AssumeRoleCredentials` - Used when you need to assume a role.

    When ‘:credentials` are not configured directly, the following locations will be searched for credentials:

    • Aws.config`

    • The ‘:access_key_id`, `:secret_access_key`, and `:session_token` options.

    • ENV, ENV

    • ‘~/.aws/credentials`

    • ‘~/.aws/config`

    • EC2 IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of ‘Aws::InstanceProfileCredentails` to enable retries and extended timeouts.

  • :region (required, String)

    The AWS region to connect to. The configured ‘:region` is used to determine the service `:endpoint`. When not passed, a default `:region` is search for in the following locations:

  • :access_key_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to ‘true`, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to `false`.

  • :client_side_monitoring (Boolean) — default: false

    When ‘true`, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When ‘true`, an attempt is made to coerce request parameters into the required types.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :endpoint (String)

    The client endpoint is normally constructed from the ‘:region` option. You should only configure an `:endpoint` when connecting to test endpoints. This should be avalid HTTP(S) URI.

  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to ‘true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the ‘:logger` at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, ‘default’ is used.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.

    @see www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors and auth errors from expired credentials.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.

  • :secret_access_key (String)
  • :session_token (String)
  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    ** Please note ** When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :validate_params (Boolean) — default: true

    When ‘true`, request parameters are validated before sending the request.



202
203
204
# File 'lib/aws-sdk-lambda/client.rb', line 202

def initialize(*args)
  super
end

Class Attribute Details

.identifierObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



3517
3518
3519
# File 'lib/aws-sdk-lambda/client.rb', line 3517

def identifier
  @identifier
end

Class Method Details

.errors_moduleObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



3520
3521
3522
# File 'lib/aws-sdk-lambda/client.rb', line 3520

def errors_module
  Errors
end

Instance Method Details

#add_layer_version_permission(params = {}) ⇒ Types::AddLayerVersionPermissionResponse

Adds permissions to the resource-based policy of a version of an [AWS Lambda layer]. Use this action to grant layer usage permission to other accounts. You can grant permission to a single account, all AWS accounts, or all accounts in an organization.

To revoke permission, call RemoveLayerVersionPermission with the statement ID that you specified when you added it.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.add_layer_version_permission({
  layer_name: "LayerName", # required
  version_number: 1, # required
  statement_id: "StatementId", # required
  action: "LayerPermissionAllowedAction", # required
  principal: "LayerPermissionAllowedPrincipal", # required
  organization_id: "OrganizationId",
  revision_id: "String",
})

Response structure


resp.statement #=> String
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :version_number (required, Integer)

    The version number.

  • :statement_id (required, String)

    An identifier that distinguishes the policy from others on the same layer version.

  • :action (required, String)

    The API action that grants access to the layer. For example, ‘lambda:GetLayerVersion`.

  • :principal (required, String)

    An account ID, or ‘*` to grant permission to all AWS accounts.

  • :organization_id (String)

    With the principal set to ‘*`, grant permission to all accounts in the specified organization.

  • :revision_id (String)

    Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.

Returns:

See Also:



272
273
274
275
# File 'lib/aws-sdk-lambda/client.rb', line 272

def add_layer_version_permission(params = {}, options = {})
  req = build_request(:add_layer_version_permission, params)
  req.send_request(options)
end

#add_permission(params = {}) ⇒ Types::AddPermissionResponse

Grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function.

To grant permission to another account, specify the account ID as the ‘Principal`. For AWS services, the principal is a domain-style identifier defined by the service, like `s3.amazonaws.com` or `sns.amazonaws.com`. For AWS services, you can also specify the ARN or owning account of the associated resource as the `SourceArn` or `SourceAccount`. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.

This action adds a statement to a resource-based permission policy for the function. For more information about function policies, see [Lambda Function Policies].

[1]: docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html

Examples:

Example: add-permission


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

resp = client.add_permission({
  action: "lambda:InvokeFunction", 
  function_name: "MyFunction", 
  principal: "s3.amazonaws.com", 
  source_account: "123456789012", 
  source_arn: "arn:aws:s3:::examplebucket/*", 
  statement_id: "ID-1", 
})

resp.to_h outputs the following:
{
  statement: "ID-1", 
}

Request syntax with placeholder values


resp = client.add_permission({
  function_name: "FunctionName", # required
  statement_id: "StatementId", # required
  action: "Action", # required
  principal: "Principal", # required
  source_arn: "Arn",
  source_account: "SourceOwner",
  event_source_token: "EventSourceToken",
  qualifier: "Qualifier",
  revision_id: "String",
})

Response structure


resp.statement #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :statement_id (required, String)

    A statement identifier that differentiates the statement from others in the same policy.

  • :action (required, String)

    The action that the principal can use on the function. For example, ‘lambda:InvokeFunction` or `lambda:GetFunction`.

  • :principal (required, String)

    The AWS service or account that invokes the function. If you specify a service, use ‘SourceArn` or `SourceAccount` to limit who can invoke the function through that service.

  • :source_arn (String)

    For AWS services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.

  • :source_account (String)

    For AWS services, the ID of the account that owns the resource. Use instead of ‘SourceArn` to grant permission to resources owned by another account (e.g. all of an account’s Amazon S3 buckets). Or use together with ‘SourceArn` to ensure that the resource is owned by the specified account. For example, an Amazon S3 bucket could be deleted by its owner and recreated by another account.

  • :event_source_token (String)

    For Alexa Smart Home functions, a token that must be supplied by the invoker.

  • :qualifier (String)

    Specify a version or alias to add permissions to a published version of the function.

  • :revision_id (String)

    Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.

Returns:

See Also:



400
401
402
403
# File 'lib/aws-sdk-lambda/client.rb', line 400

def add_permission(params = {}, options = {})
  req = build_request(:add_permission, params)
  req.send_request(options)
end

#build_request(operation_name, params = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • params ({}) (defaults to: {})


3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
# File 'lib/aws-sdk-lambda/client.rb', line 3495

def build_request(operation_name, params = {})
  handlers = @handlers.for(operation_name)
  context = Seahorse::Client::RequestContext.new(
    operation_name: operation_name,
    operation: config.api.operation(operation_name),
    client: self,
    params: params,
    config: config)
  context[:gem_name] = 'aws-sdk-lambda'
  context[:gem_version] = '1.17.0'
  Seahorse::Client::Request.new(handlers, context)
end

#create_alias(params = {}) ⇒ Types::AliasConfiguration

Creates an [alias] for a Lambda function version. Use aliases to provide clients with a function identifier that you can update to invoke a different version.

You can also map an alias to split invocation requests between two versions. Use the ‘RoutingConfig` parameter to specify a second version and the percentage of invocation requests that it receives.

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Request syntax with placeholder values


resp = client.create_alias({
  function_name: "FunctionName", # required
  name: "Alias", # required
  function_version: "Version", # required
  description: "Description",
  routing_config: {
    additional_version_weights: {
      "AdditionalVersion" => 1.0,
    },
  },
})

Response structure


resp.alias_arn #=> String
resp.name #=> String
resp.function_version #=> String
resp.description #=> String
resp.routing_config.additional_version_weights #=> Hash
resp.routing_config.additional_version_weights["AdditionalVersion"] #=> Float
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :name (required, String)

    The name of the alias.

  • :function_version (required, String)

    The function version that the alias invokes.

  • :description (String)

    A description of the alias.

  • :routing_config (Types::AliasRoutingConfiguration)

Returns:

See Also:



485
486
487
488
# File 'lib/aws-sdk-lambda/client.rb', line 485

def create_alias(params = {}, options = {})
  req = build_request(:create_alias, params)
  req.send_request(options)
end

#create_event_source_mapping(params = {}) ⇒ Types::EventSourceMappingConfiguration

Creates a mapping between an event source and an AWS Lambda function. Lambda reads items from the event source and triggers the function.

For details about each event source type, see the following topics.

  • Using AWS Lambda with Amazon Kinesis][1
  • Using AWS Lambda with Amazon SQS][2
  • Using AWS Lambda with Amazon DynamoDB][3

[1]: docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html [2]: docs.aws.amazon.com/lambda/latest/dg/with-sqs.html [3]: docs.aws.amazon.com/lambda/latest/dg/with-ddb.html

Examples:

Request syntax with placeholder values


resp = client.create_event_source_mapping({
  event_source_arn: "Arn", # required
  function_name: "FunctionName", # required
  enabled: false,
  batch_size: 1,
  starting_position: "TRIM_HORIZON", # accepts TRIM_HORIZON, LATEST, AT_TIMESTAMP
  starting_position_timestamp: Time.now,
})

Response structure


resp.uuid #=> String
resp.batch_size #=> Integer
resp.event_source_arn #=> String
resp.function_arn #=> String
resp.last_modified #=> Time
resp.last_processing_result #=> String
resp.state #=> String
resp.state_transition_reason #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :event_source_arn (required, String)

    The Amazon Resource Name (ARN) of the event source.

    • **Amazon Kinesis** - The ARN of the data stream or a stream consumer.

    • **Amazon DynamoDB Streams** - The ARN of the stream.

    • **Amazon Simple Queue Service** - The ARN of the queue.

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Version or Alias ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it’s limited to 64 characters in length.

  • :enabled (Boolean)

    Disables the event source mapping to pause polling and invocation.

  • :batch_size (Integer)

    The maximum number of items to retrieve in a single batch.

    • **Amazon Kinesis** - Default 100. Max 10,000.

    • **Amazon DynamoDB Streams** - Default 100. Max 1,000.

    • **Amazon Simple Queue Service** - Default 10. Max 10.

  • :starting_position (String)

    The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Streams sources. ‘AT_TIMESTAMP` is only supported for Amazon Kinesis streams.

  • :starting_position_timestamp (Time, DateTime, Date, Integer, String)

    With ‘StartingPosition` set to `AT_TIMESTAMP`, the time from which to start reading.

Returns:

See Also:



593
594
595
596
# File 'lib/aws-sdk-lambda/client.rb', line 593

def create_event_source_mapping(params = {}, options = {})
  req = build_request(:create_event_source_mapping, params)
  req.send_request(options)
end

#create_function(params = {}) ⇒ Types::FunctionConfiguration

Creates a Lambda function. To create a function, you need a

deployment package][1

and an [execution role]. The deployment

package contains your function code. The execution role grants the function permission to use AWS services such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

A function has an unpublished version, and can have published versions and aliases. A published version is a snapshot of your function code and configuration that can not 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).

If another account or a AWS service invokes your function, use AddPermission to grant permission by creating a resource-based 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 AWS services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see [Invoking Functions].

[1]: docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html [2]: docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role [3]: docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html

Examples:

Example: create-function


# This example creates a Lambda function.

resp = client.create_function({
  code: {
  }, 
  description: "", 
  function_name: "MyFunction", 
  handler: "souce_file.handler_name", # is of the form of the name of your source file and then name of your function handler
  memory_size: 128, 
  publish: true, 
  role: "arn:aws:iam::123456789012:role/service-role/role-name", # replace with the actual arn of the execution role you created
  runtime: "nodejs8.10", 
  timeout: 15, 
  vpc_config: {
  }, 
})

resp.to_h outputs the following:
{
  code_sha_256: "", 
  code_size: 123, 
  description: "", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:MyFunction", 
  function_name: "MyFunction", 
  handler: "source_file.handler_name", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/service-role/role-name", 
  runtime: "nodejs8.10", 
  timeout: 123, 
  version: "1", 
  vpc_config: {
  }, 
}

Request syntax with placeholder values


resp = client.create_function({
  function_name: "FunctionName", # required
  runtime: "nodejs", # required, accepts nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, python3.7, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x, ruby2.5, provided
  role: "RoleArn", # required
  handler: "Handler", # required
  code: { # required
    zip_file: "data",
    s3_bucket: "S3Bucket",
    s3_key: "S3Key",
    s3_object_version: "S3ObjectVersion",
  },
  description: "Description",
  timeout: 1,
  memory_size: 1,
  publish: false,
  vpc_config: {
    subnet_ids: ["SubnetId"],
    security_group_ids: ["SecurityGroupId"],
  },
  dead_letter_config: {
    target_arn: "ResourceArn",
  },
  environment: {
    variables: {
      "EnvironmentVariableName" => "EnvironmentVariableValue",
    },
  },
  kms_key_arn: "KMSKeyArn",
  tracing_config: {
    mode: "Active", # accepts Active, PassThrough
  },
  tags: {
    "TagKey" => "TagValue",
  },
  layers: ["LayerVersionArn"],
})

Response structure


resp.function_name #=> String
resp.function_arn #=> String
resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.role #=> String
resp.handler #=> String
resp.code_size #=> Integer
resp.description #=> String
resp.timeout #=> Integer
resp.memory_size #=> Integer
resp.last_modified #=> Time
resp.code_sha_256 #=> String
resp.version #=> String
resp.vpc_config.subnet_ids #=> Array
resp.vpc_config.subnet_ids[0] #=> String
resp.vpc_config.security_group_ids #=> Array
resp.vpc_config.security_group_ids[0] #=> String
resp.vpc_config.vpc_id #=> String
resp.dead_letter_config.target_arn #=> String
resp.environment.variables #=> Hash
resp.environment.variables["EnvironmentVariableName"] #=> String
resp.environment.error.error_code #=> String
resp.environment.error.message #=> String
resp.kms_key_arn #=> String
resp.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.master_arn #=> String
resp.revision_id #=> String
resp.layers #=> Array
resp.layers[0].arn #=> String
resp.layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :runtime (required, String)

    The identifier of the function’s [runtime].

    [1]: docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

  • :role (required, String)

    The Amazon Resource Name (ARN) of the function’s execution role.

  • :handler (required, String)

    The name of the method within your code that Lambda calls to execute your function. The format includes the filename and can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Programming Model].

    [1]: docs.aws.amazon.com/lambda/latest/dg/programming-model-v2.html

  • :code (required, Types::FunctionCode)

    The code for the function.

  • :description (String)

    A description of the function.

  • :timeout (Integer)

    The amount of time that Lambda allows a function to run before terminating it. The default is 3 seconds. The maximum allowed value is 900 seconds.

  • :memory_size (Integer)

    The amount of memory that your function has access to. Increasing the function’s memory also increases it’s CPU allocation. The default value is 128 MB. The value must be a multiple of 64 MB.

  • :publish (Boolean)

    Set to true to publish the first version of the function during creation.

  • :vpc_config (Types::VpcConfig)

    For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can only access resources and the internet through that VPC. For more information, see [VPC Settings].

    [1]: docs.aws.amazon.com/lambda/latest/dg/vpc.html

  • :dead_letter_config (Types::DeadLetterConfig)

    A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead Letter Queues].

    [1]: docs.aws.amazon.com/lambda/latest/dg/dlq.html

  • :environment (Types::Environment)

    Environment variables that are accessible from function code during execution.

  • :kms_key_arn (String)

    The ARN of the AWS Key Management Service key used to encrypt your function’s environment variables. If not provided, AWS Lambda uses a default service key.

  • :tracing_config (Types::TracingConfig)

    Set ‘Mode` to `Active` to sample and trace a subset of incoming requests with AWS X-Ray.

  • :tags (Hash<String,String>)

    A list of [tags] to apply to the function.

    [1]: docs.aws.amazon.com/lambda/latest/dg/tagging.html

  • :layers (Array<String>)

    A list of [function layers] to add to the function’s execution environment. Specify each layer by ARN, including the version.

    [1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Returns:

See Also:



872
873
874
875
# File 'lib/aws-sdk-lambda/client.rb', line 872

def create_function(params = {}, options = {})
  req = build_request(:create_function, params)
  req.send_request(options)
end

#delete_alias(params = {}) ⇒ Struct

Examples:

Example: To delete a Lambda function alias


# This operation deletes a Lambda function alias

resp = client.delete_alias({
  function_name: "myFunction", 
  name: "alias", 
})

Request syntax with placeholder values


resp = client.delete_alias({
  function_name: "FunctionName", # required
  name: "Alias", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :name (required, String)

    The name of the alias.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



924
925
926
927
# File 'lib/aws-sdk-lambda/client.rb', line 924

def delete_alias(params = {}, options = {})
  req = build_request(:delete_alias, params)
  req.send_request(options)
end

#delete_event_source_mapping(params = {}) ⇒ Types::EventSourceMappingConfiguration

Deletes an [event source mapping]. You can get the identifier of a mapping from the output of ListEventSourceMappings.

[1]: docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html

Examples:

Example: To delete a Lambda function event source mapping


# This operation deletes a Lambda function event source mapping

resp = client.delete_event_source_mapping({
  uuid: "12345kxodurf3443", 
})

resp.to_h outputs the following:
{
  batch_size: 123, 
  event_source_arn: "arn:aws:s3:::examplebucket/*", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  last_processing_result: "", 
  state: "", 
  state_transition_reason: "", 
  uuid: "12345kxodurf3443", 
}

Request syntax with placeholder values


resp = client.delete_event_source_mapping({
  uuid: "String", # required
})

Response structure


resp.uuid #=> String
resp.batch_size #=> Integer
resp.event_source_arn #=> String
resp.function_arn #=> String
resp.last_modified #=> Time
resp.last_processing_result #=> String
resp.state #=> String
resp.state_transition_reason #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :uuid (required, String)

    The identifier of the event source mapping.

Returns:

See Also:



992
993
994
995
# File 'lib/aws-sdk-lambda/client.rb', line 992

def delete_event_source_mapping(params = {}, options = {})
  req = build_request(:delete_event_source_mapping, params)
  req.send_request(options)
end

#delete_function(params = {}) ⇒ Struct

Deletes a Lambda function. To delete a specific function version, use the ‘Qualifier` parameter. Otherwise, all versions and aliases are deleted.

To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For AWS services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

Examples:

Example: To delete a Lambda function


# This operation deletes a Lambda function

resp = client.delete_function({
  function_name: "myFunction", 
  qualifier: "1", 
})

Request syntax with placeholder values


resp = client.delete_function({
  function_name: "FunctionName", # required
  qualifier: "Qualifier",
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function or version.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:1` (with version).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :qualifier (String)

    Specify a version to delete. You cannot delete a version that is referenced by an alias.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1050
1051
1052
1053
# File 'lib/aws-sdk-lambda/client.rb', line 1050

def delete_function(params = {}, options = {})
  req = build_request(:delete_function, params)
  req.send_request(options)
end

#delete_function_concurrency(params = {}) ⇒ Struct

Removes a concurrent execution limit from a function.

Examples:

Request syntax with placeholder values


resp = client.delete_function_concurrency({
  function_name: "FunctionName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1084
1085
1086
1087
# File 'lib/aws-sdk-lambda/client.rb', line 1084

def delete_function_concurrency(params = {}, options = {})
  req = build_request(:delete_function_concurrency, params)
  req.send_request(options)
end

#delete_layer_version(params = {}) ⇒ Struct

Deletes a version of an [AWS Lambda layer]. Deleted versions can no longer be viewed or added to functions. To avoid breaking functions, a copy of the version remains in Lambda until no functions refer to it.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.delete_layer_version({
  layer_name: "LayerName", # required
  version_number: 1, # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :version_number (required, Integer)

    The version number.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1116
1117
1118
1119
# File 'lib/aws-sdk-lambda/client.rb', line 1116

def delete_layer_version(params = {}, options = {})
  req = build_request(:delete_layer_version, params)
  req.send_request(options)
end

#get_account_settings(params = {}) ⇒ Types::GetAccountSettingsResponse

Retrieves details about your account’s [limits] and usage in a region.

[1]: docs.aws.amazon.com/lambda/latest/dg/limits.html

Examples:

Example: To retrieves a Lambda customer’s account settings


# This operation retrieves a Lambda customer's account settings

resp = client.({
})

resp.to_h outputs the following:
{
  account_limit: {
  }, 
  account_usage: {
  }, 
}

Response structure


resp..total_code_size #=> Integer
resp..code_size_unzipped #=> Integer
resp..code_size_zipped #=> Integer
resp..concurrent_executions #=> Integer
resp..unreserved_concurrent_executions #=> Integer
resp..total_code_size #=> Integer
resp..function_count #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1163
1164
1165
1166
# File 'lib/aws-sdk-lambda/client.rb', line 1163

def (params = {}, options = {})
  req = build_request(:get_account_settings, params)
  req.send_request(options)
end

#get_alias(params = {}) ⇒ Types::AliasConfiguration

Returns details about a Lambda function [alias].

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Example: To retrieve a Lambda function alias


# This operation retrieves a Lambda function alias

resp = client.get_alias({
  function_name: "myFunction", 
  name: "myFunctionAlias", 
})

resp.to_h outputs the following:
{
  alias_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunctionAlias", 
  description: "", 
  function_version: "1", 
  name: "myFunctionAlias", 
}

Request syntax with placeholder values


resp = client.get_alias({
  function_name: "FunctionName", # required
  name: "Alias", # required
})

Response structure


resp.alias_arn #=> String
resp.name #=> String
resp.function_version #=> String
resp.description #=> String
resp.routing_config.additional_version_weights #=> Hash
resp.routing_config.additional_version_weights["AdditionalVersion"] #=> Float
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :name (required, String)

    The name of the alias.

Returns:

See Also:



1240
1241
1242
1243
# File 'lib/aws-sdk-lambda/client.rb', line 1240

def get_alias(params = {}, options = {})
  req = build_request(:get_alias, params)
  req.send_request(options)
end

#get_event_source_mapping(params = {}) ⇒ Types::EventSourceMappingConfiguration

Returns details about an event source mapping. You can get the identifier of a mapping from the output of ListEventSourceMappings.

Examples:

Example: To retrieve a Lambda function’s event source mapping


# This operation retrieves a Lambda function's event source mapping

resp = client.get_event_source_mapping({
  uuid: "123489-xxxxx-kdla8d89d7", 
})

resp.to_h outputs the following:
{
  batch_size: 123, 
  event_source_arn: "arn:aws:iam::123456789012:eventsource", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  last_processing_result: "", 
  state: "", 
  state_transition_reason: "", 
  uuid: "123489-xxxxx-kdla8d89d7", 
}

Request syntax with placeholder values


resp = client.get_event_source_mapping({
  uuid: "String", # required
})

Response structure


resp.uuid #=> String
resp.batch_size #=> Integer
resp.event_source_arn #=> String
resp.function_arn #=> String
resp.last_modified #=> Time
resp.last_processing_result #=> String
resp.state #=> String
resp.state_transition_reason #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :uuid (required, String)

    The identifier of the event source mapping.

Returns:

See Also:



1304
1305
1306
1307
# File 'lib/aws-sdk-lambda/client.rb', line 1304

def get_event_source_mapping(params = {}, options = {})
  req = build_request(:get_event_source_mapping, params)
  req.send_request(options)
end

#get_function(params = {}) ⇒ Types::GetFunctionResponse

Returns information about function or function version, with a link to download the deployment package that’s valid for 10 minutes. If you specify a function version, only details specific to that version are returned.

Examples:

Example: To retrieve a Lambda function’s event source mapping


# This operation retrieves a Lambda function's event source mapping

resp = client.get_function({
  function_name: "myFunction", 
  qualifier: "1", 
})

resp.to_h outputs the following:
{
  code: {
    location: "somelocation", 
    repository_type: "S3", 
  }, 
  configuration: {
    code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", 
    code_size: 262, 
    description: "A starter AWS Lambda function.", 
    environment: {
      variables: {
        "S3_BUCKET" => "test", 
      }, 
    }, 
    function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
    function_name: "myFunction", 
    handler: "index.handler", 
    last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
    memory_size: 128, 
    role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
    runtime: "nodejs8.10", 
    timeout: 3, 
    version: "$LATEST", 
    vpc_config: {
      security_group_ids: [
      ], 
      subnet_ids: [
      ], 
    }, 
  }, 
}

Request syntax with placeholder values


resp = client.get_function({
  function_name: "NamespacedFunctionName", # required
  qualifier: "Qualifier",
})

Response structure


resp.configuration.function_name #=> String
resp.configuration.function_arn #=> String
resp.configuration.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.configuration.role #=> String
resp.configuration.handler #=> String
resp.configuration.code_size #=> Integer
resp.configuration.description #=> String
resp.configuration.timeout #=> Integer
resp.configuration.memory_size #=> Integer
resp.configuration.last_modified #=> Time
resp.configuration.code_sha_256 #=> String
resp.configuration.version #=> String
resp.configuration.vpc_config.subnet_ids #=> Array
resp.configuration.vpc_config.subnet_ids[0] #=> String
resp.configuration.vpc_config.security_group_ids #=> Array
resp.configuration.vpc_config.security_group_ids[0] #=> String
resp.configuration.vpc_config.vpc_id #=> String
resp.configuration.dead_letter_config.target_arn #=> String
resp.configuration.environment.variables #=> Hash
resp.configuration.environment.variables["EnvironmentVariableName"] #=> String
resp.configuration.environment.error.error_code #=> String
resp.configuration.environment.error.message #=> String
resp.configuration.kms_key_arn #=> String
resp.configuration.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.configuration.master_arn #=> String
resp.configuration.revision_id #=> String
resp.configuration.layers #=> Array
resp.configuration.layers[0].arn #=> String
resp.configuration.layers[0].code_size #=> Integer
resp.code.repository_type #=> String
resp.code.location #=> String
resp.tags #=> Hash
resp.tags["TagKey"] #=> String
resp.concurrency.reserved_concurrent_executions #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :qualifier (String)

    Specify a version or alias to get details about a published version of the function.

Returns:

See Also:



1433
1434
1435
1436
# File 'lib/aws-sdk-lambda/client.rb', line 1433

def get_function(params = {}, options = {})
  req = build_request(:get_function, params)
  req.send_request(options)
end

#get_function_configuration(params = {}) ⇒ Types::FunctionConfiguration

Returns a the version-specific settings of a Lambda function or version. The output includes only options that can vary between versions of a function. To modify these settings, use UpdateFunctionConfiguration.

To get all of a function’s details, including function-level settings, use GetFunction.

Examples:

Example: To retrieve a Lambda function’s event source mapping


# This operation retrieves a Lambda function's event source mapping

resp = client.get_function_configuration({
  function_name: "myFunction", 
  qualifier: "1", 
})

resp.to_h outputs the following:
{
  code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", 
  code_size: 123, 
  dead_letter_config: {
  }, 
  description: "", 
  environment: {
  }, 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  function_name: "myFunction", 
  handler: "index.handler", 
  kms_key_arn: "", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
  runtime: "python2.7", 
  timeout: 123, 
  version: "1", 
  vpc_config: {
  }, 
}

Request syntax with placeholder values


resp = client.get_function_configuration({
  function_name: "NamespacedFunctionName", # required
  qualifier: "Qualifier",
})

Response structure


resp.function_name #=> String
resp.function_arn #=> String
resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.role #=> String
resp.handler #=> String
resp.code_size #=> Integer
resp.description #=> String
resp.timeout #=> Integer
resp.memory_size #=> Integer
resp.last_modified #=> Time
resp.code_sha_256 #=> String
resp.version #=> String
resp.vpc_config.subnet_ids #=> Array
resp.vpc_config.subnet_ids[0] #=> String
resp.vpc_config.security_group_ids #=> Array
resp.vpc_config.security_group_ids[0] #=> String
resp.vpc_config.vpc_id #=> String
resp.dead_letter_config.target_arn #=> String
resp.environment.variables #=> Hash
resp.environment.variables["EnvironmentVariableName"] #=> String
resp.environment.error.error_code #=> String
resp.environment.error.message #=> String
resp.kms_key_arn #=> String
resp.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.master_arn #=> String
resp.revision_id #=> String
resp.layers #=> Array
resp.layers[0].arn #=> String
resp.layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :qualifier (String)

    Specify a version or alias to get details about a published version of the function.

Returns:

See Also:



1566
1567
1568
1569
# File 'lib/aws-sdk-lambda/client.rb', line 1566

def get_function_configuration(params = {}, options = {})
  req = build_request(:get_function_configuration, params)
  req.send_request(options)
end

#get_layer_version(params = {}) ⇒ Types::GetLayerVersionResponse

Returns information about a version of an [AWS Lambda layer], with a link to download the layer archive that’s valid for 10 minutes.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.get_layer_version({
  layer_name: "LayerName", # required
  version_number: 1, # required
})

Response structure


resp.content.location #=> String
resp.content.code_sha_256 #=> String
resp.content.code_size #=> Integer
resp.layer_arn #=> String
resp.layer_version_arn #=> String
resp.description #=> String
resp.created_date #=> Time
resp.version #=> Integer
resp.compatible_runtimes #=> Array
resp.compatible_runtimes[0] #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.license_info #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :version_number (required, Integer)

    The version number.

Returns:

See Also:



1620
1621
1622
1623
# File 'lib/aws-sdk-lambda/client.rb', line 1620

def get_layer_version(params = {}, options = {})
  req = build_request(:get_layer_version, params)
  req.send_request(options)
end

#get_layer_version_policy(params = {}) ⇒ Types::GetLayerVersionPolicyResponse

Returns the permission policy for a version of an [AWS Lambda layer]. For more information, see AddLayerVersionPermission.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.get_layer_version_policy({
  layer_name: "LayerName", # required
  version_number: 1, # required
})

Response structure


resp.policy #=> String
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :version_number (required, Integer)

    The version number.

Returns:

See Also:



1659
1660
1661
1662
# File 'lib/aws-sdk-lambda/client.rb', line 1659

def get_layer_version_policy(params = {}, options = {})
  req = build_request(:get_layer_version_policy, params)
  req.send_request(options)
end

#get_policy(params = {}) ⇒ Types::GetPolicyResponse

Returns the [resource-based IAM policy] for a function, version, or alias.

[1]: docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html

Examples:

Example: To retrieve a Lambda function policy


# This operation retrieves a Lambda function policy

resp = client.get_policy({
  function_name: "myFunction", 
  qualifier: "1", 
})

resp.to_h outputs the following:
{
  policy: "", 
}

Request syntax with placeholder values


resp = client.get_policy({
  function_name: "NamespacedFunctionName", # required
  qualifier: "Qualifier",
})

Response structure


resp.policy #=> String
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :qualifier (String)

    Specify a version or alias to get the policy for that resource.

Returns:

See Also:



1727
1728
1729
1730
# File 'lib/aws-sdk-lambda/client.rb', line 1727

def get_policy(params = {}, options = {})
  req = build_request(:get_policy, params)
  req.send_request(options)
end

#invoke(params = {}) ⇒ Types::InvocationResponse

Invokes a Lambda function. You can invoke a function synchronously and wait for the response, or asynchronously. To invoke a function asynchronously, set ‘InvocationType` to `Event`.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the

execution log][1

and [trace]. To record function errors for

asynchronous invocations, configure your function with a [dead letter queue].

The status code in the API response does not reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, [limit errors], or issues with your function’s code and configuration. For example, Lambda returns ‘TooManyRequestsException` if executing the function would cause you to exceed a concurrency limit at either the account level (`ConcurrentInvocationLimitExceeded`) or function level (`ReservedFunctionConcurrentInvocationLimitExceeded`).

For functions with a long timeout, your client may be disconnected during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the ‘lambda:InvokeFunction` action.

[1]: docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html [2]: docs.aws.amazon.com/lambda/latest/dg/dlq.html [3]: docs.aws.amazon.com/lambda/latest/dg/limits.html

Examples:

Example: To invoke a Lambda function


# This operation invokes a Lambda function

resp = client.invoke({
  client_context: "MyApp", 
  function_name: "MyFunction", 
  invocation_type: "Event", 
  log_type: "Tail", 
  payload: "fileb://file-path/input.json", 
  qualifier: "1", 
})

resp.to_h outputs the following:
{
  function_error: "", 
  log_result: "", 
  payload: "?", 
  status_code: 123, 
}

Request syntax with placeholder values


resp = client.invoke({
  function_name: "NamespacedFunctionName", # required
  invocation_type: "Event", # accepts Event, RequestResponse, DryRun
  log_type: "None", # accepts None, Tail
  client_context: "String",
  payload: "data",
  qualifier: "Qualifier",
})

Response structure


resp.status_code #=> Integer
resp.function_error #=> String
resp.log_result #=> String
resp.payload #=> String
resp.executed_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :invocation_type (String)

    Choose from the following options.

    • ‘RequestResponse` (default) - Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API response includes the function response and additional data.

    • ‘Event` - Invoke the function asynchronously. Send events that fail multiple times to the function’s dead-letter queue (if configured). The API response only includes a status code.

    • ‘DryRun` - Validate parameter values and verify that the user or role has permission to invoke the function.

  • :log_type (String)

    Set to ‘Tail` to include the execution log in the response.

  • :client_context (String)

    Up to 3583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.

  • :payload (String, IO)

    JSON that you want to provide to your Lambda function as input.

  • :qualifier (String)

    Specify a version or alias to invoke a published version of the function.

Returns:

See Also:



1865
1866
1867
1868
# File 'lib/aws-sdk-lambda/client.rb', line 1865

def invoke(params = {}, options = {})
  req = build_request(:invoke, params)
  req.send_request(options)
end

#invoke_async(params = {}) ⇒ Types::InvokeAsyncResponse

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

Examples:

Example: To invoke a Lambda function asynchronously


# This operation invokes a Lambda function asynchronously

resp = client.invoke_async({
  function_name: "myFunction", 
  invoke_args: "fileb://file-path/input.json", 
})

resp.to_h outputs the following:
{
  status: 123, 
}

Request syntax with placeholder values


resp = client.invoke_async({
  function_name: "NamespacedFunctionName", # required
  invoke_args: "data", # required
})

Response structure


resp.status #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :invoke_args (required, String, IO)

    JSON that you want to provide to your Lambda function as input.

Returns:

See Also:



1926
1927
1928
1929
# File 'lib/aws-sdk-lambda/client.rb', line 1926

def invoke_async(params = {}, options = {})
  req = build_request(:invoke_async, params)
  req.send_request(options)
end

#list_aliases(params = {}) ⇒ Types::ListAliasesResponse

Returns a list of [aliases] for a Lambda function.

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Example: To retrieve a Lambda function aliases


# This operation retrieves a Lambda function's aliases

resp = client.list_aliases({
  function_name: "myFunction", 
  function_version: "1", 
  marker: "", 
  max_items: 123, 
})

resp.to_h outputs the following:
{
  aliases: [
  ], 
  next_marker: "", 
}

Request syntax with placeholder values


resp = client.list_aliases({
  function_name: "FunctionName", # required
  function_version: "Version",
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.aliases #=> Array
resp.aliases[0].alias_arn #=> String
resp.aliases[0].name #=> String
resp.aliases[0].function_version #=> String
resp.aliases[0].description #=> String
resp.aliases[0].routing_config.additional_version_weights #=> Hash
resp.aliases[0].routing_config.additional_version_weights["AdditionalVersion"] #=> Float
resp.aliases[0].revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :function_version (String)

    Specify a function version to only list aliases that invoke that version.

  • :marker (String)

    Specify the pagination token returned by a previous request to retrieve the next page of results.

  • :max_items (Integer)

    Limit the number of aliases returned.

Returns:

See Also:



2012
2013
2014
2015
# File 'lib/aws-sdk-lambda/client.rb', line 2012

def list_aliases(params = {}, options = {})
  req = build_request(:list_aliases, params)
  req.send_request(options)
end

#list_event_source_mappings(params = {}) ⇒ Types::ListEventSourceMappingsResponse

Lists event source mappings. Specify an ‘EventSourceArn` to only show event source mappings for a single event source.

Examples:

Request syntax with placeholder values


resp = client.list_event_source_mappings({
  event_source_arn: "Arn",
  function_name: "FunctionName",
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.event_source_mappings #=> Array
resp.event_source_mappings[0].uuid #=> String
resp.event_source_mappings[0].batch_size #=> Integer
resp.event_source_mappings[0].event_source_arn #=> String
resp.event_source_mappings[0].function_arn #=> String
resp.event_source_mappings[0].last_modified #=> Time
resp.event_source_mappings[0].last_processing_result #=> String
resp.event_source_mappings[0].state #=> String
resp.event_source_mappings[0].state_transition_reason #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :event_source_arn (String)

    The Amazon Resource Name (ARN) of the event source.

    • **Amazon Kinesis** - The ARN of the data stream or a stream consumer.

    • **Amazon DynamoDB Streams** - The ARN of the stream.

    • **Amazon Simple Queue Service** - The ARN of the queue.

  • :function_name (String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Version or Alias ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it’s limited to 64 characters in length.

  • :marker (String)

    A pagination token returned by a previous call.

  • :max_items (Integer)

    The maximum number of event source mappings to return.

Returns:

See Also:



2085
2086
2087
2088
# File 'lib/aws-sdk-lambda/client.rb', line 2085

def list_event_source_mappings(params = {}, options = {})
  req = build_request(:list_event_source_mappings, params)
  req.send_request(options)
end

#list_functions(params = {}) ⇒ Types::ListFunctionsResponse

Returns a list of Lambda functions, with the version-specific configuration of each.

Set ‘FunctionVersion` to `ALL` to include all published versions of each function in addition to the unpublished version. To get more information about a function or version, use GetFunction.

Examples:

Example: To retrieve a list of Lambda functions


# This operation retrieves a Lambda functions

resp = client.list_functions({
  marker: "", 
  max_items: 123, 
})

resp.to_h outputs the following:
{
  functions: [
  ], 
  next_marker: "", 
}

Request syntax with placeholder values


resp = client.list_functions({
  master_region: "MasterRegion",
  function_version: "ALL", # accepts ALL
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.functions #=> Array
resp.functions[0].function_name #=> String
resp.functions[0].function_arn #=> String
resp.functions[0].runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.functions[0].role #=> String
resp.functions[0].handler #=> String
resp.functions[0].code_size #=> Integer
resp.functions[0].description #=> String
resp.functions[0].timeout #=> Integer
resp.functions[0].memory_size #=> Integer
resp.functions[0].last_modified #=> Time
resp.functions[0].code_sha_256 #=> String
resp.functions[0].version #=> String
resp.functions[0].vpc_config.subnet_ids #=> Array
resp.functions[0].vpc_config.subnet_ids[0] #=> String
resp.functions[0].vpc_config.security_group_ids #=> Array
resp.functions[0].vpc_config.security_group_ids[0] #=> String
resp.functions[0].vpc_config.vpc_id #=> String
resp.functions[0].dead_letter_config.target_arn #=> String
resp.functions[0].environment.variables #=> Hash
resp.functions[0].environment.variables["EnvironmentVariableName"] #=> String
resp.functions[0].environment.error.error_code #=> String
resp.functions[0].environment.error.message #=> String
resp.functions[0].kms_key_arn #=> String
resp.functions[0].tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.functions[0].master_arn #=> String
resp.functions[0].revision_id #=> String
resp.functions[0].layers #=> Array
resp.functions[0].layers[0].arn #=> String
resp.functions[0].layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :master_region (String)

    For Lambda@Edge functions, the region of the master function. For example, ‘us-east-2` or `ALL`. If specified, you must set `FunctionVersion` to `ALL`.

  • :function_version (String)

    Set to ‘ALL` to include entries for all published versions of each function.

  • :marker (String)

    Specify the pagination token returned by a previous request to retrieve the next page of results.

  • :max_items (Integer)

    Specify a value between 1 and 50 to limit the number of functions in the response.

Returns:

See Also:



2183
2184
2185
2186
# File 'lib/aws-sdk-lambda/client.rb', line 2183

def list_functions(params = {}, options = {})
  req = build_request(:list_functions, params)
  req.send_request(options)
end

#list_layer_versions(params = {}) ⇒ Types::ListLayerVersionsResponse

Lists the versions of an [AWS Lambda layer]. Versions that have been deleted aren’t listed. Specify a [runtime identifier] to list only versions that indicate that they’re compatible with that runtime.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html [2]: docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

Examples:

Request syntax with placeholder values


resp = client.list_layer_versions({
  compatible_runtime: "nodejs", # accepts nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, python3.7, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x, ruby2.5, provided
  layer_name: "LayerName", # required
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.layer_versions #=> Array
resp.layer_versions[0].layer_version_arn #=> String
resp.layer_versions[0].version #=> Integer
resp.layer_versions[0].description #=> String
resp.layer_versions[0].created_date #=> Time
resp.layer_versions[0].compatible_runtimes #=> Array
resp.layer_versions[0].compatible_runtimes[0] #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.layer_versions[0].license_info #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :compatible_runtime (String)

    A runtime identifier. For example, ‘go1.x`.

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :marker (String)

    A pagination token returned by a previous call.

  • :max_items (Integer)

    The maximum number of versions to return.

Returns:

See Also:



2240
2241
2242
2243
# File 'lib/aws-sdk-lambda/client.rb', line 2240

def list_layer_versions(params = {}, options = {})
  req = build_request(:list_layer_versions, params)
  req.send_request(options)
end

#list_layers(params = {}) ⇒ Types::ListLayersResponse

Lists [AWS Lambda layers] and shows information about the latest version of each. Specify a [runtime identifier] to list only layers that indicate that they’re compatible with that runtime.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html [2]: docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

Examples:

Request syntax with placeholder values


resp = client.list_layers({
  compatible_runtime: "nodejs", # accepts nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, python3.7, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x, ruby2.5, provided
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.layers #=> Array
resp.layers[0].layer_name #=> String
resp.layers[0].layer_arn #=> String
resp.layers[0].latest_matching_version.layer_version_arn #=> String
resp.layers[0].latest_matching_version.version #=> Integer
resp.layers[0].latest_matching_version.description #=> String
resp.layers[0].latest_matching_version.created_date #=> Time
resp.layers[0].latest_matching_version.compatible_runtimes #=> Array
resp.layers[0].latest_matching_version.compatible_runtimes[0] #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.layers[0].latest_matching_version.license_info #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :compatible_runtime (String)

    A runtime identifier. For example, ‘go1.x`.

  • :marker (String)

    A pagination token returned by a previous call.

  • :max_items (Integer)

    The maximum number of layers to return.

Returns:

See Also:



2294
2295
2296
2297
# File 'lib/aws-sdk-lambda/client.rb', line 2294

def list_layers(params = {}, options = {})
  req = build_request(:list_layers, params)
  req.send_request(options)
end

#list_tags(params = {}) ⇒ Types::ListTagsResponse

Returns a function’s [tags]. You can also view tags with GetFunction.

[1]: docs.aws.amazon.com/lambda/latest/dg/tagging.html

Examples:

Request syntax with placeholder values


resp = client.list_tags({
  resource: "FunctionArn", # required
})

Response structure


resp.tags #=> Hash
resp.tags["TagKey"] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource (required, String)

    The function’s Amazon Resource Name (ARN).

Returns:

See Also:



2328
2329
2330
2331
# File 'lib/aws-sdk-lambda/client.rb', line 2328

def list_tags(params = {}, options = {})
  req = build_request(:list_tags, params)
  req.send_request(options)
end

#list_versions_by_function(params = {}) ⇒ Types::ListVersionsByFunctionResponse

Returns a list of [versions], with the version-specific configuration of each.

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Example: To retrieve a list of Lambda function versions


# This operation retrieves a Lambda function versions

resp = client.list_versions_by_function({
  function_name: "myFunction", 
  marker: "", 
  max_items: 123, 
})

resp.to_h outputs the following:
{
  next_marker: "", 
  versions: [
  ], 
}

Request syntax with placeholder values


resp = client.list_versions_by_function({
  function_name: "NamespacedFunctionName", # required
  marker: "String",
  max_items: 1,
})

Response structure


resp.next_marker #=> String
resp.versions #=> Array
resp.versions[0].function_name #=> String
resp.versions[0].function_arn #=> String
resp.versions[0].runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.versions[0].role #=> String
resp.versions[0].handler #=> String
resp.versions[0].code_size #=> Integer
resp.versions[0].description #=> String
resp.versions[0].timeout #=> Integer
resp.versions[0].memory_size #=> Integer
resp.versions[0].last_modified #=> Time
resp.versions[0].code_sha_256 #=> String
resp.versions[0].version #=> String
resp.versions[0].vpc_config.subnet_ids #=> Array
resp.versions[0].vpc_config.subnet_ids[0] #=> String
resp.versions[0].vpc_config.security_group_ids #=> Array
resp.versions[0].vpc_config.security_group_ids[0] #=> String
resp.versions[0].vpc_config.vpc_id #=> String
resp.versions[0].dead_letter_config.target_arn #=> String
resp.versions[0].environment.variables #=> Hash
resp.versions[0].environment.variables["EnvironmentVariableName"] #=> String
resp.versions[0].environment.error.error_code #=> String
resp.versions[0].environment.error.message #=> String
resp.versions[0].kms_key_arn #=> String
resp.versions[0].tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.versions[0].master_arn #=> String
resp.versions[0].revision_id #=> String
resp.versions[0].layers #=> Array
resp.versions[0].layers[0].arn #=> String
resp.versions[0].layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :marker (String)

    Specify the pagination token returned by a previous request to retrieve the next page of results.

  • :max_items (Integer)

    Limit the number of versions returned.

Returns:

See Also:



2431
2432
2433
2434
# File 'lib/aws-sdk-lambda/client.rb', line 2431

def list_versions_by_function(params = {}, options = {})
  req = build_request(:list_versions_by_function, params)
  req.send_request(options)
end

#publish_layer_version(params = {}) ⇒ Types::PublishLayerVersionResponse

Creates an [AWS Lambda layer] from a ZIP archive. Each time you call ‘PublishLayerVersion` with the same version name, a new version is created.

Add layers to your function with CreateFunction or UpdateFunctionConfiguration.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.publish_layer_version({
  layer_name: "LayerName", # required
  description: "Description",
  content: { # required
    s3_bucket: "S3Bucket",
    s3_key: "S3Key",
    s3_object_version: "S3ObjectVersion",
    zip_file: "data",
  },
  compatible_runtimes: ["nodejs"], # accepts nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, python3.7, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x, ruby2.5, provided
  license_info: "LicenseInfo",
})

Response structure


resp.content.location #=> String
resp.content.code_sha_256 #=> String
resp.content.code_size #=> Integer
resp.layer_arn #=> String
resp.layer_version_arn #=> String
resp.description #=> String
resp.created_date #=> Time
resp.version #=> Integer
resp.compatible_runtimes #=> Array
resp.compatible_runtimes[0] #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.license_info #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

See Also:



2522
2523
2524
2525
# File 'lib/aws-sdk-lambda/client.rb', line 2522

def publish_layer_version(params = {}, options = {})
  req = build_request(:publish_layer_version, params)
  req.send_request(options)
end

#publish_version(params = {}) ⇒ Types::FunctionConfiguration

Creates a [version] from the current code and configuration of a function. Use versions to create a snapshot of your function code and configuration that doesn’t change.

AWS Lambda does not publish a version if the function’s configuration and code hasn’t changed since the last version. Use UpdateFunctionCode or UpdateFunctionConfiguration to update the function prior to publishing a version.

Clients can invoke versions directly or with an alias. To create an alias, use CreateAlias.

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Example: To publish a version of a Lambda function


# This operation publishes a version of a Lambda function

resp = client.publish_version({
  code_sha_256: "", 
  description: "", 
  function_name: "myFunction", 
})

resp.to_h outputs the following:
{
  code_sha_256: "", 
  code_size: 123, 
  description: "", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  function_name: "myFunction", 
  handler: "index.handler", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
  runtime: "python2.7", 
  timeout: 123, 
  version: "1", 
  vpc_config: {
  }, 
}

Request syntax with placeholder values


resp = client.publish_version({
  function_name: "FunctionName", # required
  code_sha_256: "String",
  description: "Description",
  revision_id: "String",
})

Response structure


resp.function_name #=> String
resp.function_arn #=> String
resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.role #=> String
resp.handler #=> String
resp.code_size #=> Integer
resp.description #=> String
resp.timeout #=> Integer
resp.memory_size #=> Integer
resp.last_modified #=> Time
resp.code_sha_256 #=> String
resp.version #=> String
resp.vpc_config.subnet_ids #=> Array
resp.vpc_config.subnet_ids[0] #=> String
resp.vpc_config.security_group_ids #=> Array
resp.vpc_config.security_group_ids[0] #=> String
resp.vpc_config.vpc_id #=> String
resp.dead_letter_config.target_arn #=> String
resp.environment.variables #=> Hash
resp.environment.variables["EnvironmentVariableName"] #=> String
resp.environment.error.error_code #=> String
resp.environment.error.message #=> String
resp.kms_key_arn #=> String
resp.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.master_arn #=> String
resp.revision_id #=> String
resp.layers #=> Array
resp.layers[0].arn #=> String
resp.layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :code_sha_256 (String)

    Only publish a version if the hash matches the value specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. You can get the hash for the version you uploaded from the output of UpdateFunctionCode.

  • :description (String)

    Specify a description for the version to override the description in the function configuration.

  • :revision_id (String)

    Only update the function if the revision ID matches the ID specified. Use this option to avoid publishing a version if the function configuration has changed since you last updated it.

Returns:

See Also:



2670
2671
2672
2673
# File 'lib/aws-sdk-lambda/client.rb', line 2670

def publish_version(params = {}, options = {})
  req = build_request(:publish_version, params)
  req.send_request(options)
end

#put_function_concurrency(params = {}) ⇒ Types::Concurrency

Sets the maximum number of simultaneous executions for a function, and reserves capacity for that concurrency level.

Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both guarantees that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use GetFunction to see the current setting for a function.

Use GetAccountSettings to see your regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren’t configured with a per-function limit. For more information, see [Managing Concurrency].

[1]: docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html

Examples:

Request syntax with placeholder values


resp = client.put_function_concurrency({
  function_name: "FunctionName", # required
  reserved_concurrent_executions: 1, # required
})

Response structure


resp.reserved_concurrent_executions #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :reserved_concurrent_executions (required, Integer)

    The number of simultaneous executions to reserve for the function.

Returns:

See Also:



2732
2733
2734
2735
# File 'lib/aws-sdk-lambda/client.rb', line 2732

def put_function_concurrency(params = {}, options = {})
  req = build_request(:put_function_concurrency, params)
  req.send_request(options)
end

#remove_layer_version_permission(params = {}) ⇒ Struct

Removes a statement from the permissions policy for a version of an [AWS Lambda layer]. For more information, see AddLayerVersionPermission.

[1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Examples:

Request syntax with placeholder values


resp = client.remove_layer_version_permission({
  layer_name: "LayerName", # required
  version_number: 1, # required
  statement_id: "StatementId", # required
  revision_id: "String",
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :layer_name (required, String)

    The name or Amazon Resource Name (ARN) of the layer.

  • :version_number (required, Integer)

    The version number.

  • :statement_id (required, String)

    The identifier that was specified when the statement was added.

  • :revision_id (String)

    Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2774
2775
2776
2777
# File 'lib/aws-sdk-lambda/client.rb', line 2774

def remove_layer_version_permission(params = {}, options = {})
  req = build_request(:remove_layer_version_permission, params)
  req.send_request(options)
end

#remove_permission(params = {}) ⇒ Struct

Revokes function use permission from an AWS service or another account. You can get the ID of the statement from the output of GetPolicy.

Examples:

Example: To remove a Lambda function’s permissions


# This operation removes a Lambda function's permissions

resp = client.remove_permission({
  function_name: "myFunction", 
  qualifier: "1", 
  statement_id: "role-statement-id", 
})

Request syntax with placeholder values


resp = client.remove_permission({
  function_name: "FunctionName", # required
  statement_id: "NamespacedStatementId", # required
  qualifier: "Qualifier",
  revision_id: "String",
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function, version, or alias.

    **Name formats**

    • **Function name** - ‘my-function` (name-only), `my-function:v1` (with alias).

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :statement_id (required, String)

    Statement ID of the permission to remove.

  • :qualifier (String)

    Specify a version or alias to remove permissions from a published version of the function.

  • :revision_id (String)

    Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2838
2839
2840
2841
# File 'lib/aws-sdk-lambda/client.rb', line 2838

def remove_permission(params = {}, options = {})
  req = build_request(:remove_permission, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  resource: "FunctionArn", # required
  tags: { # required
    "TagKey" => "TagValue",
  },
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource (required, String)

    The function’s Amazon Resource Name (ARN).

  • :tags (required, Hash<String,String>)

    A list of tags to apply to the function.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2870
2871
2872
2873
# File 'lib/aws-sdk-lambda/client.rb', line 2870

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  resource: "FunctionArn", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource (required, String)

    The function’s Amazon Resource Name (ARN).

  • :tag_keys (required, Array<String>)

    A list of tag keys to remove from the function.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2900
2901
2902
2903
# File 'lib/aws-sdk-lambda/client.rb', line 2900

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_alias(params = {}) ⇒ Types::AliasConfiguration

Updates the configuration of a Lambda function [alias].

[1]: docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

Examples:

Example: To update a Lambda function alias


# This operation updates a Lambda function alias

resp = client.update_alias({
  description: "", 
  function_name: "myFunction", 
  function_version: "1", 
  name: "functionAlias", 
})

resp.to_h outputs the following:
{
  alias_arn: "arn:aws:lambda:us-west-2:123456789012:function:functionAlias", 
  description: "", 
  function_version: "1", 
  name: "functionAlias", 
}

Request syntax with placeholder values


resp = client.update_alias({
  function_name: "FunctionName", # required
  name: "Alias", # required
  function_version: "Version",
  description: "Description",
  routing_config: {
    additional_version_weights: {
      "AdditionalVersion" => 1.0,
    },
  },
  revision_id: "String",
})

Response structure


resp.alias_arn #=> String
resp.name #=> String
resp.function_version #=> String
resp.description #=> String
resp.routing_config.additional_version_weights #=> Hash
resp.routing_config.additional_version_weights["AdditionalVersion"] #=> Float
resp.revision_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :name (required, String)

    The name of the alias.

  • :function_version (String)

    The function version that the alias invokes.

  • :description (String)

    A description of the alias.

  • :routing_config (Types::AliasRoutingConfiguration)
  • :revision_id (String)

    Only update the alias if the revision ID matches the ID specified. Use this option to avoid modifying an alias that has changed since you last read it.

Returns:

See Also:



3005
3006
3007
3008
# File 'lib/aws-sdk-lambda/client.rb', line 3005

def update_alias(params = {}, options = {})
  req = build_request(:update_alias, params)
  req.send_request(options)
end

#update_event_source_mapping(params = {}) ⇒ Types::EventSourceMappingConfiguration

Updates an event source mapping. You can change the function that AWS Lambda invokes, or pause invocation and resume later from the same location.

Examples:

Example: To update a Lambda function event source mapping


# This operation updates a Lambda function event source mapping

resp = client.update_event_source_mapping({
  batch_size: 123, 
  enabled: true, 
  function_name: "myFunction", 
  uuid: "1234xCy789012", 
})

resp.to_h outputs the following:
{
  batch_size: 123, 
  event_source_arn: "arn:aws:s3:::examplebucket/*", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  last_processing_result: "", 
  state: "", 
  state_transition_reason: "", 
  uuid: "1234xCy789012", 
}

Request syntax with placeholder values


resp = client.update_event_source_mapping({
  uuid: "String", # required
  function_name: "FunctionName",
  enabled: false,
  batch_size: 1,
})

Response structure


resp.uuid #=> String
resp.batch_size #=> Integer
resp.event_source_arn #=> String
resp.function_arn #=> String
resp.last_modified #=> Time
resp.last_processing_result #=> String
resp.state #=> String
resp.state_transition_reason #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :uuid (required, String)

    The identifier of the event source mapping.

  • :function_name (String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘MyFunction`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction`.

    • **Version or Alias ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`.

    • **Partial ARN** - ‘123456789012:function:MyFunction`.

    The length constraint applies only to the full ARN. If you specify only the function name, it’s limited to 64 characters in length.

  • :enabled (Boolean)

    Disables the event source mapping to pause polling and invocation.

  • :batch_size (Integer)

    The maximum number of items to retrieve in a single batch.

    • **Amazon Kinesis** - Default 100. Max 10,000.

    • **Amazon DynamoDB Streams** - Default 100. Max 1,000.

    • **Amazon Simple Queue Service** - Default 10. Max 10.

Returns:

See Also:



3106
3107
3108
3109
# File 'lib/aws-sdk-lambda/client.rb', line 3106

def update_event_source_mapping(params = {}, options = {})
  req = build_request(:update_event_source_mapping, params)
  req.send_request(options)
end

#update_function_code(params = {}) ⇒ Types::FunctionConfiguration

Updates a Lambda function’s code.

The function’s code is locked when you publish a version. You cannot modify the code of a published version, only the unpublished version.

Examples:

Example: To update a Lambda function’s code


# This operation updates a Lambda function's code

resp = client.update_function_code({
  function_name: "myFunction", 
  publish: true, 
  s3_bucket: "myBucket", 
  s3_key: "myKey", 
  s3_object_version: "1", 
  zip_file: "fileb://file-path/file.zip", 
})

resp.to_h outputs the following:
{
  code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", 
  code_size: 123, 
  description: "", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  function_name: "myFunction", 
  handler: "index.handler", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
  runtime: "python2.7", 
  timeout: 123, 
  version: "1", 
  vpc_config: {
  }, 
}

Request syntax with placeholder values


resp = client.update_function_code({
  function_name: "FunctionName", # required
  zip_file: "data",
  s3_bucket: "S3Bucket",
  s3_key: "S3Key",
  s3_object_version: "S3ObjectVersion",
  publish: false,
  dry_run: false,
  revision_id: "String",
})

Response structure


resp.function_name #=> String
resp.function_arn #=> String
resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.role #=> String
resp.handler #=> String
resp.code_size #=> Integer
resp.description #=> String
resp.timeout #=> Integer
resp.memory_size #=> Integer
resp.last_modified #=> Time
resp.code_sha_256 #=> String
resp.version #=> String
resp.vpc_config.subnet_ids #=> Array
resp.vpc_config.subnet_ids[0] #=> String
resp.vpc_config.security_group_ids #=> Array
resp.vpc_config.security_group_ids[0] #=> String
resp.vpc_config.vpc_id #=> String
resp.dead_letter_config.target_arn #=> String
resp.environment.variables #=> Hash
resp.environment.variables["EnvironmentVariableName"] #=> String
resp.environment.error.error_code #=> String
resp.environment.error.message #=> String
resp.kms_key_arn #=> String
resp.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.master_arn #=> String
resp.revision_id #=> String
resp.layers #=> Array
resp.layers[0].arn #=> String
resp.layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :zip_file (String, IO)

    The base64-encoded contents of the deployment package. AWS SDK and AWS CLI clients handle the encoding for you.

  • :s3_bucket (String)

    An Amazon S3 bucket in the same region as your function. The bucket can be in a different AWS account.

  • :s3_key (String)

    The Amazon S3 key of the deployment package.

  • :s3_object_version (String)

    For versioned objects, the version of the deployment package object to use.

  • :publish (Boolean)

    Set to true to publish a new version of the function after updating the code. This has the same effect as calling PublishVersion separately.

  • :dry_run (Boolean)

    Set to true to validate the request parameters and access permissions without modifying the function code.

  • :revision_id (String)

    Only update the function if the revision ID matches the ID specified. Use this option to avoid modifying a function that has changed since you last read it.

Returns:

See Also:



3264
3265
3266
3267
# File 'lib/aws-sdk-lambda/client.rb', line 3264

def update_function_code(params = {}, options = {})
  req = build_request(:update_function_code, params)
  req.send_request(options)
end

#update_function_configuration(params = {}) ⇒ Types::FunctionConfiguration

Modify the version-specifc settings of a Lambda function.

These settings can vary between versions of a function and are locked when you publish a version. You cannot modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an account or AWS service, use AddPermission.

Examples:

Example: To update a Lambda function’s configuration


# This operation updates a Lambda function's configuration

resp = client.update_function_configuration({
  description: "", 
  function_name: "myFunction", 
  handler: "index.handler", 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
  runtime: "python2.7", 
  timeout: 123, 
  vpc_config: {
  }, 
})

resp.to_h outputs the following:
{
  code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", 
  code_size: 123, 
  description: "", 
  function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
  function_name: "myFunction", 
  handler: "index.handler", 
  last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), 
  memory_size: 128, 
  role: "arn:aws:iam::123456789012:role/lambda_basic_execution", 
  runtime: "python2.7", 
  timeout: 123, 
  version: "1", 
  vpc_config: {
  }, 
}

Request syntax with placeholder values


resp = client.update_function_configuration({
  function_name: "FunctionName", # required
  role: "RoleArn",
  handler: "Handler",
  description: "Description",
  timeout: 1,
  memory_size: 1,
  vpc_config: {
    subnet_ids: ["SubnetId"],
    security_group_ids: ["SecurityGroupId"],
  },
  environment: {
    variables: {
      "EnvironmentVariableName" => "EnvironmentVariableValue",
    },
  },
  runtime: "nodejs", # accepts nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, python3.7, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x, ruby2.5, provided
  dead_letter_config: {
    target_arn: "ResourceArn",
  },
  kms_key_arn: "KMSKeyArn",
  tracing_config: {
    mode: "Active", # accepts Active, PassThrough
  },
  revision_id: "String",
  layers: ["LayerVersionArn"],
})

Response structure


resp.function_name #=> String
resp.function_arn #=> String
resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "nodejs8.10", "java8", "python2.7", "python3.6", "python3.7", "dotnetcore1.0", "dotnetcore2.0", "dotnetcore2.1", "nodejs4.3-edge", "go1.x", "ruby2.5", "provided"
resp.role #=> String
resp.handler #=> String
resp.code_size #=> Integer
resp.description #=> String
resp.timeout #=> Integer
resp.memory_size #=> Integer
resp.last_modified #=> Time
resp.code_sha_256 #=> String
resp.version #=> String
resp.vpc_config.subnet_ids #=> Array
resp.vpc_config.subnet_ids[0] #=> String
resp.vpc_config.security_group_ids #=> Array
resp.vpc_config.security_group_ids[0] #=> String
resp.vpc_config.vpc_id #=> String
resp.dead_letter_config.target_arn #=> String
resp.environment.variables #=> Hash
resp.environment.variables["EnvironmentVariableName"] #=> String
resp.environment.error.error_code #=> String
resp.environment.error.message #=> String
resp.kms_key_arn #=> String
resp.tracing_config.mode #=> String, one of "Active", "PassThrough"
resp.master_arn #=> String
resp.revision_id #=> String
resp.layers #=> Array
resp.layers[0].arn #=> String
resp.layers[0].code_size #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :function_name (required, String)

    The name of the Lambda function.

    **Name formats**

    • **Function name** - ‘my-function`.

    • **Function ARN** - ‘arn:aws:lambda:us-west-2:123456789012:function:my-function`.

    • **Partial ARN** - ‘123456789012:function:my-function`.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • :role (String)

    The Amazon Resource Name (ARN) of the IAM role that Lambda will assume when it executes your function.

  • :handler (String)

    The function that Lambda calls to begin executing your function. For Node.js, it is the ‘module-name.export` value in your function.

  • :description (String)

    A short user-defined function description. AWS Lambda does not use this value. Assign a meaningful description as you see fit.

  • :timeout (Integer)

    The amount of time that Lambda allows a function to run before terminating it. The default is 3 seconds. The maximum allowed value is 900 seconds.

  • :memory_size (Integer)

    The amount of memory, in MB, your Lambda function is given. AWS Lambda uses this memory size to infer the amount of CPU allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.

  • :vpc_config (Types::VpcConfig)

    Specify security groups and subnets in a VPC to which your Lambda function needs access.

  • :environment (Types::Environment)

    The parent object that contains your environment’s configuration settings.

  • :runtime (String)

    The runtime version for the function.

  • :dead_letter_config (Types::DeadLetterConfig)

    A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead Letter Queues].

    [1]: docs.aws.amazon.com/lambda/latest/dg/dlq.html

  • :kms_key_arn (String)

    The Amazon Resource Name (ARN) of the KMS key used to encrypt your function’s environment variables. If you elect to use the AWS Lambda default service key, pass in an empty string (“”) for this parameter.

  • :tracing_config (Types::TracingConfig)

    Set ‘Mode` to `Active` to sample and trace a subset of incoming requests with AWS X-Ray.

  • :revision_id (String)

    Only update the function if the revision ID matches the ID specified. Use this option to avoid modifying a function that has changed since you last read it.

  • :layers (Array<String>)

    A list of [function layers] to add to the function’s execution environment.

    [1]: docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

Returns:

See Also:



3486
3487
3488
3489
# File 'lib/aws-sdk-lambda/client.rb', line 3486

def update_function_configuration(params = {}, options = {})
  req = build_request(:update_function_configuration, params)
  req.send_request(options)
end

#waiter_namesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deprecated.


3510
3511
3512
# File 'lib/aws-sdk-lambda/client.rb', line 3510

def waiter_names
  []
end