using Pulumi; using Aws = Pulumi.Aws; class MyStack : Stack { public MyStack() { // Create a new security group for port 80. var securityGroup = new Aws.Ec2.SecurityGroup("securityGroup", new Aws.Ec2.SecurityGroupArgs { Ingress = { new Aws.Ec2.Inputs.SecurityGroupIngressArgs { Protocol = "tcp", FromPort = 0, ToPort = 0, CidrBlocks = { "0.0.0.0/0", }, }, }, }); var ami = Output.Create(Aws.GetAmi.InvokeAsync(new Aws.GetAmiArgs { Filters = { new Aws.Inputs.GetAmiFilterArgs { Name = "name", Values = { "amzn-ami-hvm-*-x86_64-ebs", }, }, }, Owners = { "137112412989", }, MostRecent = true, })); // Create a simple web server using the startup script for the instance. var server = new Aws.Ec2.Instance("server", new Aws.Ec2.InstanceArgs { Tags = { { "Name", "web-server-www" }, }, InstanceType = "t2.micro", SecurityGroups = { securityGroup.Name, }, Ami = ami.Apply(ami => ami.Id), UserData = @"#!/bin/bash echo ""Hello, World!"" > index.html nohup python -m SimpleHTTPServer 80 & ", }); this.PublicIp = server.PublicIp; this.PublicHostName = server.PublicDns; } [Output("publicIp")] public Output PublicIp { get; set; } [Output("publicHostName")] public Output PublicHostName { get; set; } }