Vpc
A VPC with public and private subnets across availability zones and a locked-down default security group. NAT, SSM bastion and flow logs are opt-in.
Infrastructure
import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';
export default new App({
run(ctx) {
const network = new anvil.aws.Vpc('network', {
cidr: '10.0.0.0/16',
availabilityZones: 2,
nat: { natType: 'fck-nat' },
bastion: {},
});
ctx.export('vpcId', network.vpcId);
},
});import anvil_cloud as anvil
def infra(ctx: anvil.Context):
network = anvil.aws.Vpc("network",
cidr="10.0.0.0/16",
availability_zones=2,
nat={"nat_type": "fck-nat"},
bastion={},
)
ctx.export("vpc_id", network.vpc_id)
anvil.App(run=infra)package main
import (
"github.com/anvil-cloud/anvil/sdk/go/anvil"
anvilaws "github.com/anvil-cloud/anvil/sdk/go/anvil/aws"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
anvil.Run(anvil.AppConfig{
Run: func(ctx *anvil.Context) error {
network, err := anvilaws.NewVpc(ctx.PulumiCtx(), "network", &anvilaws.VpcArgs{
Cidr: pulumi.String("10.0.0.0/16"),
AvailabilityZones: pulumi.Int(2),
Nat: &anvilaws.VpcNatArgsArgs{NatType: anvilaws.VpcNatType_Fck_Nat},
Bastion: &anvilaws.VpcBastionArgsArgs{},
})
if err != nil {
return err
}
ctx.Export("vpcId", network.VpcId)
return nil
},
})
}