Exemplo n.º 1
0
        public async Task CanDeploy()
        {
            WorkspaceStack stack = null;

            try
            {
                // Arrange
                stack = await InitializeStack(() =>
                {
                    var args = new StandardVpcArgs
                    {
                        CidrBlockSegment = 1
                    };
                    var vpc = new StandardVpc("test-vpc", args);

                    return(new Dictionary <string, object>
                    {
                        { "VpcId", vpc.Vpc.Apply(v => v.Id) }
                    });
                });

                // Act
                var upResult = await stack.UpAsync(new UpOptions
                {
                    OnStandardOutput = s => Console.WriteLine($"stdout:{s}"),
                    OnStandardError  = s => Console.WriteLine($"stderr:{s}"),
                });

                // Assert
                var expectedVpcId        = (string)upResult.Outputs["VpcId"].Value;
                var describeVpcsResponse = await _ec2Client.DescribeVpcsAsync();

                describeVpcsResponse.Vpcs.Any(v => v.VpcId == expectedVpcId).ShouldBeTrue();
            }
            finally
            {
                if (stack != null)
                {
                    // Cleanup
                    var destroyResult = await stack.DestroyAsync();

                    Console.WriteLine(destroyResult.StandardOutput);
                }
            }
        }
Exemplo n.º 2
0
        public StandardVpc(string name, StandardVpcArgs args, ComponentResourceOptions?options = null)
            : base("logicality:puluimi:aws:StandardVpc", name, options)
        {
            _args    = args;
            _options = options;

            var dataTask = Define();

            var data = Output <VpcData> .Create(dataTask);

            Vpc            = data.Apply(d => d.Vpc);
            PrivateSubnet0 = data.Apply(d => d.PrivateSubnet0);
            PrivateSubnet1 = data.Apply(d => d.PrivateSubnet1);
            PublicSubnet0  = data.Apply(d => d.PublicSubnet0);
            PublicSubnet1  = data.Apply(d => d.PublicSubnet1);

            RegisterOutputs();
        }