70 lines
1.9 KiB
C#
70 lines
1.9 KiB
C#
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<string> PublicIp { get; set; }
|
|
[Output("publicHostName")]
|
|
public Output<string> PublicHostName { get; set; }
|
|
}
|