コード例 #1
0
        private void CreateSecurityGroups()
        {
            if (CdkOptions == null || CdkOptions.SecurityGroups?.Any() != true)
            {
                return;
            }

            foreach (var securityGroupOption in CdkOptions.SecurityGroups)
            {
                if (securityGroupOption.LocateInsteadOfCreate)
                {
                    var securityGroup = AwsCdkHandler.LocateSecurityGroupById(securityGroupOption.SecurityGroupId, securityGroupOption.SecurityGroupId);
                    StackResources.SecurityGroups.Add(securityGroupOption.Id, securityGroup);
                }
                else
                {
                    var vpcResource = StackResources.Vpcs.FirstOrDefault(v => v.Key == securityGroupOption.VpcId);
                    var vpc         = vpcResource.Value ?? AwsCdkHandler.LocateVpc(securityGroupOption.VpcId, $"The Vpc id {securityGroupOption.VpcId} of the security group {securityGroupOption.SecurityGroupName} was not found");

                    var securityGroup = AwsCdkHandler.AddSecurityGroup(securityGroupOption.SecurityGroupName, securityGroupOption.SecurityGroupName, vpc, securityGroupOption.AllowAllOutbound, securityGroupOption.DisableInlineRules);
                    AddSecurityGroupRules(securityGroupOption, securityGroup, SecurityGroupRuleType.IngressRule);
                    AddSecurityGroupRules(securityGroupOption, securityGroup, SecurityGroupRuleType.EgressRule);
                    StackResources.SecurityGroups.Add(securityGroupOption.Id, securityGroup);
                }
            }
        }