I was excited to get an email from Pulumipus about how aws crosswalk makes managing VPCs easier... however, I was disappointed to find getting a subnet type in a particular AZ is still based on the order of the array. e.g.
pulumi.ouput(vpc.publicSubnetIds)[0]
would get the public subnet from the "first" AZ.