{"id":72703,"date":"2024-08-08T19:38:38","date_gmt":"2024-08-08T16:08:38","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/"},"modified":"2024-08-08T19:38:38","modified_gmt":"2024-08-08T16:08:38","slug":"creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/","title":{"rendered":"\u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u0648\u0646\u062f VPC Endpoint \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0648 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u062f\u0631 \u067e\u0633\u062a \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u062e\u0648\u062f\u060c \u062a\u0646\u0638\u06cc\u0645 VPC \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0628\u0627 Terraform \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS\u060c \u062f\u0631 \u0645\u0648\u0631\u062f \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0627 Lambda \u0648 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0645\u0646 \u0628\u0627 DynamoDB \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u062e\u0627\u0631\u062c\u06cc \u0635\u062d\u0628\u062a \u06a9\u0631\u062f\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB\u060c \u0627\u0632 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Gateway \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0627\u0633\u062a \u0648 \u0627\u06af\u0631 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u062f\u0631 VPC \u0628\u0627\u0634\u062f\u060c \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc Gateway \u0641\u0642\u0637 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 S3 \u0648 DynamoDB \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0647\u0645\u0647 \u0645\u0646\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631 (\u0627\u0632 \u062c\u0645\u0644\u0647 DynamoDB \u0648 S3) \u0628\u0647 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>\u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0647 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0628\u0631\u062e\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u06a9\u062f \u062a\u0627\u0628\u0639 Lambda \u0634\u0645\u0627\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc DynamoDB\u060c \u0628\u0631\u062e\u0644\u0627\u0641 Endpoint \u0627\u0632 \u0646\u0648\u0639 Gateway \u06a9\u0647 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u062f\u060c \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 Interface Endpoints \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc\u200c\u062a\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u0648\u0646\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Interface \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS \u0648 Terraform \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f.<\/p>\n<p>  \u0645\u0631\u0627\u062d\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0631\u0627\u06cc Lambda \u0648 DynamoDB:<\/p>\n<p>\u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB\u060c \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f.<br \/>\n\u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc Lambda\u060c \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u062c\u0627\u0632\u0647 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 DynamoDB \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>\u0633\u0631\u0648\u06cc\u0633 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0634\u0646\u0627\u0633\u0647 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.<br \/>\n\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC\u060c \u0646\u0627\u0645 DNS \u0631\u0627 \u0627\u0632 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u06a9\u062f Lambda \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform<\/p>\n<p>resource &#8220;aws_vpc&#8221; &#8220;main&#8221; {<br \/>\n  cidr_block = &#8220;&#8221;<br \/>\n}<\/p>\n<p># Create private subnets<br \/>\nresource &#8220;aws_subnet&#8221; &#8220;private&#8221; {<br \/>\n  count                   = NUMBER OF PRIVATE SUBNETS&gt;<br \/>\n  vpc_id                  = aws_vpc.main.id<br \/>\n  cidr_block              = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index * 2 + 1)<br \/>\n  availability_zone       = element(data.aws_availability_zones.available.names, count.index)<br \/>\n  map_public_ip_on_launch = false<br \/>\n}<\/p>\n<p>resource &#8220;aws_security_group&#8221; &#8220;dynamodb_vpc_endpoint_sg&#8221; {<br \/>\n  name        = &#8220;dynamo-sg&#8221;<br \/>\n  description = &#8220;Security group for Lambda&#8221;<br \/>\n  vpc_id      = aws_vpc.main.id<\/p>\n<p>  ingress {<br \/>\n    from_port       = 0<br \/>\n    to_port         = 0<br \/>\n    protocol        = &#8220;-1&#8221;<br \/>\n    security_groups = [aws_security_group.lambda.id]\n  }<br \/>\n}<\/p>\n<p>resource &#8220;aws_security_group&#8221; &#8220;lambda&#8221; {<br \/>\n  name        = &#8220;lambda-sg&#8221;<br \/>\n  description = &#8220;Security group for Lambda&#8221;<br \/>\n  vpc_id      = aws_vpc.main.id<\/p>\n<p>  egress {<br \/>\n    from_port   = 443<br \/>\n    to_port     = 443<br \/>\n    protocol    = &#8220;TCP&#8221;<br \/>\n    cidr_blocks = [aws_vpc.main.cidr_block]\n  }<br \/>\n}<\/p>\n<p>resource &#8220;aws_vpc_endpoint&#8221; &#8220;dynamodb&#8221; {<br \/>\n  vpc_id             = aws_vpc.main.id<br \/>\n  service_name       = &#8220;com.amazonaws.${var.region}.dynamodb&#8221;<br \/>\n  vpc_endpoint_type  = &#8220;Interface&#8221;<br \/>\n  subnet_ids         = aws_subnet.private[*].id<br \/>\n  security_group_ids = [aws_security_group.dynamodb_vpc_endpoint_sg.id]\n}<\/p>\n<p># Use the endpoint as an environment variable in your Lambda function<br \/>\noutput &#8220;dynamodb_vpc_endpoint_dns&#8221; {<br \/>\n  value = aws_vpc_endpoint.dynamodb.dns_entry[0].dns_name<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>const { DynamoDBClient } = require(&#8220;@aws-sdk\/client-dynamodb&#8221;);<br \/>\nconst client = new DynamoDBClient({<br \/>\n    endpoint: `https:\/\/`,<br \/>\n});<br \/>\nconst dynamoDbClient = DynamoDBDocumentClient.from(client);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS<\/p>\n<p>\u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0628\u0627 \u0642\u0627\u0646\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0627\u0633\u0628 (\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0646 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u0645).<br \/>\n\u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0628\u0627 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0645\u0646\u0627\u0633\u0628 (\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c VPC CIDR \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645).<br \/>\n\u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Interface \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0628\u0627 VPC \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0648 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc\u060c \u0633\u067e\u0633 DynamoDB Security Group \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.  \u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f\u060c \u0646\u0627\u0645 DNS \u0631\u0627 \u0627\u0632 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u062a\u0627\u0628\u0639 Lambda \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0645\u0627\u0646\u0646\u062f \u0632\u06cc\u0631 \u062f\u0631 \u062a\u0627\u0628\u0639 Node.js Lambda \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>const { DynamoDBClient } = require(&#8220;@aws-sdk\/client-dynamodb&#8221;);<br \/>\nconst client = new DynamoDBClient({<br \/>\n    endpoint: `https:\/\/`,<br \/>\n});<br \/>\nconst dynamoDbClient = DynamoDBDocumentClient.from(client);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u0648\u0646\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS \u0648 Terraform \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0631\u062a\u0628\u0627\u0637 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 DynamoDB \u0648 \u0633\u0627\u06cc\u0631 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc AWS \u0627\u06cc\u0645\u0646 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642\u06cc \u0628\u0631 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648 \u0627\u0645\u0646\u06cc\u062a \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0645\u0627 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc Interface \u0631\u0627 \u0628\u0627 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc Gateway \u0645\u0642\u0627\u06cc\u0633\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u0648 \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0636\u0627\u0641\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0645\u0627\u0646\u0646\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0627\u0634\u0627\u0631\u0647 \u06a9\u0631\u062f\u06cc\u0645.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u06cc\u0646 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u0645\u0646\u06cc\u062a \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0631\u0627 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0645\u062d\u06cc\u0637 AWS \u0634\u0645\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u06a9\u062f Terraform \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0648 \u0645\u0631\u0627\u062d\u0644 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS\u060c \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u062e\u0648\u062f \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u06cc\u0645\u0646 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0647 DynamoDB \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 Lambda \u062e\u0648\u062f \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div data-article-id=\"1952465\" id=\"article-body\">\n<p>\u062f\u0631 \u067e\u0633\u062a \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u062e\u0648\u062f\u060c \u062a\u0646\u0638\u06cc\u0645 VPC \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0628\u0627 Terraform \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS\u060c \u062f\u0631 \u0645\u0648\u0631\u062f \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0627 Lambda \u0648 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0645\u0646 \u0628\u0627 DynamoDB \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u062e\u0627\u0631\u062c\u06cc \u0635\u062d\u0628\u062a \u06a9\u0631\u062f\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB\u060c \u0627\u0632 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Gateway \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0627\u0633\u062a \u0648 \u0627\u06af\u0631 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u062f\u0631 VPC \u0628\u0627\u0634\u062f\u060c \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc Gateway \u0641\u0642\u0637 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 S3 \u0648 DynamoDB \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0647\u0645\u0647 \u0645\u0646\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631 (\u0627\u0632 \u062c\u0645\u0644\u0647 DynamoDB \u0648 S3) \u0628\u0647 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>\u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0647 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0628\u0631\u062e\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u06a9\u062f \u062a\u0627\u0628\u0639 Lambda \u0634\u0645\u0627\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc DynamoDB\u060c \u0628\u0631\u062e\u0644\u0627\u0641 Endpoint \u0627\u0632 \u0646\u0648\u0639 Gateway \u06a9\u0647 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u062f\u060c \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 Interface Endpoints \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc\u200c\u062a\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u0648\u0646\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Interface \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS \u0648 Terraform \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/#%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7\" >\u0645\u0631\u0627\u062d\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Terraform\" >\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%DA%A9%D9%86%D8%B3%D9%88%D9%84_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_AWS\" >\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/creating-and-linking-vpc-endpoint-of-type-interface-using-terraform-and-aws-management-console-2oo\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7\"><\/span>\n<p>  \u0645\u0631\u0627\u062d\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0631\u0627\u06cc Lambda \u0648 DynamoDB:<\/strong><\/p>\n<ul>\n<li>\u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB\u060c \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f.<\/li>\n<li>\u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc Lambda\u060c \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u062c\u0627\u0632\u0647 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 DynamoDB \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<ul>\n<li>\u0633\u0631\u0648\u06cc\u0633 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0634\u0646\u0627\u0633\u0647 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.<\/li>\n<li>\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC\u060c \u0646\u0627\u0645 DNS \u0631\u0627 \u0627\u0632 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u06a9\u062f Lambda \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Terraform\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight hcl\"><code><span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc\"<\/span> <span class=\"s2\">\"main\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"<your_cidr_block>\"<\/your_cidr_block><\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\"># Create private subnets<\/span>\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_subnet\"<\/span> <span class=\"s2\">\"private\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">count<\/span>                   <span class=\"p\">=<\/span> <span class=\"err\"><span class=\"nx\">NUMBER<\/span> <span class=\"nx\">OF<\/span> <span class=\"nx\">PRIVATE<\/span> <span class=\"nx\">SUBNETS<\/span><span class=\"err\">&gt;<\/span>\n  <span class=\"nx\">vpc_id<\/span>                  <span class=\"p\">=<\/span> <span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n  <span class=\"nx\">cidr_block<\/span>              <span class=\"p\">=<\/span> <span class=\"nx\">cidrsubnet<\/span><span class=\"p\">(<\/span><span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">cidr_block<\/span><span class=\"p\">,<\/span> <span class=\"mi\">8<\/span><span class=\"p\">,<\/span> <span class=\"nx\">count<\/span><span class=\"p\">.<\/span><span class=\"nx\">index<\/span> <span class=\"p\">*<\/span> <span class=\"mi\">2<\/span> <span class=\"err\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n  <span class=\"nx\">availability_zone<\/span>       <span class=\"p\">=<\/span> <span class=\"nx\">element<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">aws_availability_zones<\/span><span class=\"p\">.<\/span><span class=\"nx\">available<\/span><span class=\"p\">.<\/span><span class=\"nx\">names<\/span><span class=\"p\">,<\/span> <span class=\"nx\">count<\/span><span class=\"p\">.<\/span><span class=\"nx\">index<\/span><span class=\"p\">)<\/span>\n  <span class=\"nx\">map_public_ip_on_launch<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">false<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_security_group\"<\/span> <span class=\"s2\">\"dynamodb_vpc_endpoint_sg\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">name<\/span>        <span class=\"p\">=<\/span> <span class=\"s2\">\"dynamo-sg\"<\/span>\n  <span class=\"nx\">description<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"Security group for Lambda\"<\/span>\n  <span class=\"nx\">vpc_id<\/span>      <span class=\"p\">=<\/span> <span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n\n  <span class=\"nx\">ingress<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">from_port<\/span>       <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"nx\">to_port<\/span>         <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"nx\">protocol<\/span>        <span class=\"p\">=<\/span> <span class=\"s2\">\"-1\"<\/span>\n    <span class=\"nx\">security_groups<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">aws_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">lambda<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">]<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_security_group\"<\/span> <span class=\"s2\">\"lambda\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">name<\/span>        <span class=\"p\">=<\/span> <span class=\"s2\">\"lambda-sg\"<\/span>\n  <span class=\"nx\">description<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"Security group for Lambda\"<\/span>\n  <span class=\"nx\">vpc_id<\/span>      <span class=\"p\">=<\/span> <span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n\n  <span class=\"nx\">egress<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">from_port<\/span>   <span class=\"p\">=<\/span> <span class=\"mi\">443<\/span>\n    <span class=\"nx\">to_port<\/span>     <span class=\"p\">=<\/span> <span class=\"mi\">443<\/span>\n    <span class=\"nx\">protocol<\/span>    <span class=\"p\">=<\/span> <span class=\"s2\">\"TCP\"<\/span>\n    <span class=\"nx\">cidr_blocks<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">cidr_block<\/span><span class=\"p\">]<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc_endpoint\"<\/span> <span class=\"s2\">\"dynamodb\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">vpc_id<\/span>             <span class=\"p\">=<\/span> <span class=\"nx\">aws_vpc<\/span><span class=\"p\">.<\/span><span class=\"nx\">main<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n  <span class=\"nx\">service_name<\/span>       <span class=\"p\">=<\/span> <span class=\"s2\">\"com.amazonaws.${var.region}.dynamodb\"<\/span>\n  <span class=\"nx\">vpc_endpoint_type<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"Interface\"<\/span>\n  <span class=\"nx\">subnet_ids<\/span>         <span class=\"p\">=<\/span> <span class=\"nx\">aws_subnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">private<\/span><span class=\"p\">[*].<\/span><span class=\"nx\">id<\/span>\n  <span class=\"nx\">security_group_ids<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">aws_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">dynamodb_vpc_endpoint_sg<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\"># Use the endpoint as an environment variable in your Lambda function<\/span>\n<span class=\"nx\">output<\/span> <span class=\"s2\">\"dynamodb_vpc_endpoint_dns\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">value<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">aws_vpc_endpoint<\/span><span class=\"p\">.<\/span><span class=\"nx\">dynamodb<\/span><span class=\"p\">.<\/span><span class=\"nx\">dns_entry<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">dns_name<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DynamoDBClient<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">@aws-sdk\/client-dynamodb<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">client<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">DynamoDBClient<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">endpoint<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`https:\/\/<the vpc=\"\" endpoint=\"\" dns=\"\">`<\/the><\/span><span class=\"p\">,<\/span>\n<span class=\"p\">});<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">dynamoDbClient<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">DynamoDBDocumentClient<\/span><span class=\"p\">.<\/span><span class=\"k\">from<\/span><span class=\"p\">(<\/span><span class=\"nx\">client<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%86%D9%82%D8%B7%D9%87_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_VPC_%D8%A7%D8%B2_%D9%86%D9%88%D8%B9_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%DA%A9%D9%86%D8%B3%D9%88%D9%84_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_AWS\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>\n<p><strong>\u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc DynamoDB \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong> \u0628\u0627 \u0642\u0627\u0646\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0645\u0646\u0627\u0633\u0628 (\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0646 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u0627\u06cc \u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u0645).<br \/><\/p>\n<\/li>\n<li>\n<p><strong>\u06af\u0631\u0648\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong> \u0628\u0627 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0645\u0646\u0627\u0633\u0628 (\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c VPC CIDR \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u062e\u0631\u0648\u062c\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645).<br \/><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehebd6jkrrthtsu2qzf4.png\" alt=\"\u0644\u0627\u0645\u0628\u062f\u0627 \u0627\u0633 \u062c\u06cc\" loading=\"lazy\" width=\"800\" height=\"224\" title=\"\"><\/p>\n<\/li>\n<li>\n<p><strong>\u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 Interface \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong> \u0628\u0627 VPC \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0648 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc\u060c \u0633\u067e\u0633 DynamoDB Security Group \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.  \u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f\u060c \u0646\u0627\u0645 DNS \u0631\u0627 \u0627\u0632 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u062a\u0627\u0628\u0639 Lambda \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 DynamoDB \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<br \/><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8noghxo22aa2uhs2tgq.png\" alt=\"VPCE \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"413\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxbz5uvrok06hxs0ddcrm.png\" alt=\"\u062c\u0632\u0626\u06cc\u0627\u062a VPCE\" loading=\"lazy\" width=\"800\" height=\"352\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehuvr4tbce96gkbjee7w.png\" alt=\"VPCE \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\" loading=\"lazy\" width=\"800\" height=\"373\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o2tdmlhx6cagp9r6xh7.png\" alt=\"VPCE DNS\" loading=\"lazy\" width=\"800\" height=\"455\" title=\"\"><\/p>\n<\/li>\n<\/ol>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0645\u0627\u0646\u0646\u062f \u0632\u06cc\u0631 \u062f\u0631 \u062a\u0627\u0628\u0639 Node.js Lambda \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DynamoDBClient<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">@aws-sdk\/client-dynamodb<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">client<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">DynamoDBClient<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">endpoint<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`https:\/\/<the vpc=\"\" endpoint=\"\" dns=\"\">`<\/the><\/span><span class=\"p\">,<\/span>\n<span class=\"p\">});<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">dynamoDbClient<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">DynamoDBDocumentClient<\/span><span class=\"p\">.<\/span><span class=\"k\">from<\/span><span class=\"p\">(<\/span><span class=\"nx\">client<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u0648\u0646\u062f \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc VPC \u0627\u0632 \u0646\u0648\u0639 \u0631\u0627\u0628\u0637 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS \u0648 Terraform \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0631\u062a\u0628\u0627\u0637 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 DynamoDB \u0648 \u0633\u0627\u06cc\u0631 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc AWS \u0627\u06cc\u0645\u0646 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642\u06cc \u0628\u0631 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648 \u0627\u0645\u0646\u06cc\u062a \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0645\u0627 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc Interface \u0631\u0627 \u0628\u0627 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc Gateway \u0645\u0642\u0627\u06cc\u0633\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u0648 \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0636\u0627\u0641\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0645\u0627\u0646\u0646\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0627\u0634\u0627\u0631\u0647 \u06a9\u0631\u062f\u06cc\u0645.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u06cc\u0646 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u0645\u0646\u06cc\u062a \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0631\u0627 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u0645\u062d\u06cc\u0637 AWS \u0634\u0645\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u06a9\u062f Terraform \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0648 \u0645\u0631\u0627\u062d\u0644 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS\u060c \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u062e\u0648\u062f \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u06cc\u0645\u0646 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0647 DynamoDB \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 Lambda \u062e\u0648\u062f \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u067e\u0633\u062a \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u062e\u0648\u062f\u060c \u062a\u0646\u0638\u06cc\u0645 VPC \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0628\u0627 Terraform \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS\u060c \u062f\u0631 \u0645\u0648\u0631\u062f \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc VPC \u0628\u0627 Lambda \u0648 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0645\u0646 \u0628\u0627 DynamoDB \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u062e\u0627\u0631\u062c\u06cc \u0635\u062d\u0628\u062a \u06a9\u0631\u062f\u0645. \u0628\u0631\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":72704,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-72703","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=72703"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72703\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/72704"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=72703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=72703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=72703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}