mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
190 lines
4.3 KiB
YAML
190 lines
4.3 KiB
YAML
AWSTemplateFormatVersion: 2010-09-09
|
|
|
|
Parameters:
|
|
ClusterName:
|
|
Type: String
|
|
Description: Name of MSK Cluster
|
|
ClusterConfigurationArn:
|
|
Type: String
|
|
Description: MSK Cluster Configuration ARN
|
|
ClusterConfigurationRevision:
|
|
Type: Number
|
|
Description: MSK Cluster Configuration Revision number
|
|
Default: 1
|
|
|
|
Resources:
|
|
VPC:
|
|
Type: AWS::EC2::VPC
|
|
Properties:
|
|
CidrBlock: 172.31.0.0/16
|
|
Tags:
|
|
- Key: Name
|
|
Value: !Ref AWS::StackName
|
|
|
|
PublicSubnet:
|
|
Type: AWS::EC2::Subnet
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
AvailabilityZone:
|
|
Fn::Select:
|
|
- 0
|
|
- Fn::GetAZs: ''
|
|
CidrBlock: 172.31.0.0/24
|
|
MapPublicIpOnLaunch: true
|
|
|
|
PrivateSubnetA:
|
|
Type: AWS::EC2::Subnet
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
AvailabilityZone:
|
|
Fn::Select:
|
|
- 0
|
|
- Fn::GetAZs: ''
|
|
CidrBlock: 172.31.3.0/24
|
|
MapPublicIpOnLaunch: false
|
|
|
|
PrivateSubnetB:
|
|
Type: AWS::EC2::Subnet
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
AvailabilityZone:
|
|
Fn::Select:
|
|
- 1
|
|
- Fn::GetAZs: ''
|
|
CidrBlock: 172.31.2.0/24
|
|
MapPublicIpOnLaunch: false
|
|
|
|
InternetGateway:
|
|
Type: AWS::EC2::InternetGateway
|
|
|
|
GatewayAttachment:
|
|
Type: AWS::EC2::VPCGatewayAttachment
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
InternetGatewayId: !Ref InternetGateway
|
|
|
|
PublicRouteTable:
|
|
Type: AWS::EC2::RouteTable
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
|
|
PublicRoute:
|
|
Type: AWS::EC2::Route
|
|
DependsOn: GatewayAttachment
|
|
Properties:
|
|
RouteTableId: !Ref PublicRouteTable
|
|
DestinationCidrBlock: 0.0.0.0/0
|
|
GatewayId: !Ref InternetGateway
|
|
|
|
PublicSubnetRouteTableAssociation:
|
|
Type: AWS::EC2::SubnetRouteTableAssociation
|
|
Properties:
|
|
SubnetId: !Ref PublicSubnet
|
|
RouteTableId: !Ref PublicRouteTable
|
|
|
|
NatGateway:
|
|
Type: AWS::EC2::NatGateway
|
|
DependsOn: NatPublicIP
|
|
Properties:
|
|
AllocationId: !GetAtt NatPublicIP.AllocationId
|
|
SubnetId: !Ref PublicSubnet
|
|
|
|
NatPublicIP:
|
|
Type: AWS::EC2::EIP
|
|
DependsOn: VPC
|
|
Properties:
|
|
Domain: vpc
|
|
|
|
PrivateRouteTable:
|
|
Type: AWS::EC2::RouteTable
|
|
Properties:
|
|
VpcId: !Ref VPC
|
|
|
|
PrivateRoute:
|
|
Type: AWS::EC2::Route
|
|
Properties:
|
|
RouteTableId: !Ref PrivateRouteTable
|
|
DestinationCidrBlock: 0.0.0.0/0
|
|
NatGatewayId: !Ref NatGateway
|
|
|
|
PrivateSubnetARouteTableAssociation:
|
|
Type: AWS::EC2::SubnetRouteTableAssociation
|
|
Properties:
|
|
SubnetId: !Ref PrivateSubnetA
|
|
RouteTableId: !Ref PrivateRouteTable
|
|
|
|
PrivateSubnetBRouteTableAssociation:
|
|
Type: AWS::EC2::SubnetRouteTableAssociation
|
|
Properties:
|
|
SubnetId: !Ref PrivateSubnetB
|
|
RouteTableId: !Ref PrivateRouteTable
|
|
|
|
MSKCluster:
|
|
Type: 'AWS::MSK::Cluster'
|
|
Properties:
|
|
ClusterName: !Ref ClusterName
|
|
KafkaVersion: 2.2.1
|
|
NumberOfBrokerNodes: 2
|
|
BrokerNodeGroupInfo:
|
|
InstanceType: kafka.t3.small
|
|
ClientSubnets:
|
|
- !Ref PrivateSubnetA
|
|
- !Ref PrivateSubnetB
|
|
StorageInfo:
|
|
EBSStorageInfo:
|
|
VolumeSize: 1
|
|
ConfigurationInfo:
|
|
Arn: !Ref ClusterConfigurationArn
|
|
Revision: !Ref ClusterConfigurationRevision
|
|
|
|
FileSystem:
|
|
Type: AWS::EFS::FileSystem
|
|
Properties:
|
|
PerformanceMode: generalPurpose
|
|
FileSystemTags:
|
|
- Key: Name
|
|
Value: ServerlessFrameworkTestsVolume
|
|
|
|
MountTarget:
|
|
Type: AWS::EFS::MountTarget
|
|
Properties:
|
|
FileSystemId: !Ref FileSystem
|
|
SubnetId: !Ref PrivateSubnetA
|
|
SecurityGroups:
|
|
- !GetAtt VPC.DefaultSecurityGroup
|
|
|
|
AccessPointResource:
|
|
Type: AWS::EFS::AccessPoint
|
|
Properties:
|
|
FileSystemId: !Ref FileSystem
|
|
PosixUser:
|
|
Uid: 1001
|
|
Gid: 1001
|
|
RootDirectory:
|
|
CreationInfo:
|
|
OwnerGid: 1001
|
|
OwnerUid: 1001
|
|
Permissions: 770
|
|
Path: /efs
|
|
|
|
Outputs:
|
|
VPC:
|
|
Description: VPC ID
|
|
Value: !Ref VPC
|
|
|
|
PrivateSubnetA:
|
|
Description: Private Subnet A ID
|
|
Value: !Ref PrivateSubnetA
|
|
|
|
SecurityGroup:
|
|
Description: Default security for Lambda VPC
|
|
Value: !GetAtt VPC.DefaultSecurityGroup
|
|
|
|
MSKCluster:
|
|
Description: Created MSK Cluster
|
|
Value: !Ref MSKCluster
|
|
|
|
EFSAccessPointARN:
|
|
Description: EFS Access Point ARN
|
|
Value: !GetAtt AccessPointResource.Arn
|