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); } } }
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(); }