Class: AWSCDK::Lambda::CfnFunction::VPCConfigProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
lambda/cfn_function.rb

Overview

The VPC security groups and subnets that are attached to a Lambda function.

When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see VPC Settings .

When you delete a function, CloudFormation monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CloudFormation can delete the VPC's resources.

To monitor network interfaces, CloudFormation needs the ec2:DescribeNetworkInterfaces permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CloudFormation does not wait for network interfaces to be deleted.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ipv6_allowed_for_dual_stack: nil, security_group_ids: nil, subnet_ids: nil) ⇒ VPCConfigProperty

Returns a new instance of VPCConfigProperty.

Parameters:

  • ipv6_allowed_for_dual_stack (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.

  • security_group_ids (Array<String>, nil) (defaults to: nil)

    A list of VPC security group IDs.

  • subnet_ids (Array<String>, nil) (defaults to: nil)

    A list of VPC subnet IDs.



1744
1745
1746
1747
1748
1749
1750
1751
# File 'lambda/cfn_function.rb', line 1744

def initialize(ipv6_allowed_for_dual_stack: nil, security_group_ids: nil, subnet_ids: nil)
  @ipv6_allowed_for_dual_stack = ipv6_allowed_for_dual_stack
  Jsii::Type.check_type(@ipv6_allowed_for_dual_stack, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "ipv6AllowedForDualStack") unless @ipv6_allowed_for_dual_stack.nil?
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds") unless @security_group_ids.nil?
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "subnetIds") unless @subnet_ids.nil?
end

Instance Attribute Details

#ipv6_allowed_for_dual_stackBoolean, ... (readonly)

Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.



1757
1758
1759
# File 'lambda/cfn_function.rb', line 1757

def ipv6_allowed_for_dual_stack
  @ipv6_allowed_for_dual_stack
end

#security_group_idsArray<String>? (readonly)

A list of VPC security group IDs.



1762
1763
1764
# File 'lambda/cfn_function.rb', line 1762

def security_group_ids
  @security_group_ids
end

#subnet_idsArray<String>? (readonly)

A list of VPC subnet IDs.



1767
1768
1769
# File 'lambda/cfn_function.rb', line 1767

def subnet_ids
  @subnet_ids
end

Class Method Details

.jsii_propertiesObject



1769
1770
1771
1772
1773
1774
1775
# File 'lambda/cfn_function.rb', line 1769

def self.jsii_properties
  {
    :ipv6_allowed_for_dual_stack => "ipv6AllowedForDualStack",
    :security_group_ids => "securityGroupIds",
    :subnet_ids => "subnetIds",
  }
end

Instance Method Details

#to_jsiiObject



1777
1778
1779
1780
1781
1782
1783
1784
1785
# File 'lambda/cfn_function.rb', line 1777

def to_jsii
  result = {}
  result.merge!({
    "ipv6AllowedForDualStack" => @ipv6_allowed_for_dual_stack,
    "securityGroupIds" => @security_group_ids,
    "subnetIds" => @subnet_ids,
  })
  result.compact
end