Package com.pulumi.aws.lightsail
Class Instance
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.lightsail.Instance
-
public class Instance extends com.pulumi.resources.CustomResource
Provides a Lightsail Instance. Amazon Lightsail is a service to provide easy virtual private servers with custom software already setup. See [What is Amazon Lightsail?](https://lightsail.aws.amazon.com/ls/docs/getting-started/article/what-is-amazon-lightsail) for more information. > **Note:** Lightsail is currently only supported in a limited number of AWS Regions, please see ["Regions and Availability Zones in Amazon Lightsail"](https://lightsail.aws.amazon.com/ls/docs/overview/article/understanding-regions-and-availability-zones-in-amazon-lightsail) for more details ## Example Usage ### Basic Usage <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var gitlabTest = new Instance("gitlabTest", InstanceArgs.builder() .name("custom_gitlab") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .keyPairName("some_key_name") .tags(Map.of("foo", "bar")) .build()); } } ``` <!--End PulumiCodeChooser --> ### Example With User Data Lightsail user data is handled differently than ec2 user data. Lightsail user data only accepts a single lined string. The below example shows installing apache and creating the index page. <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var custom = new Instance("custom", InstanceArgs.builder() .name("custom") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .userData("sudo yum install -y httpd && sudo systemctl start httpd && sudo systemctl enable httpd && echo '<h1>Deployed via Pulumi</h1>' | sudo tee /var/www/html/index.html") .build()); } } ``` <!--End PulumiCodeChooser --> ### Enable Auto Snapshots <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import com.pulumi.aws.lightsail.inputs.InstanceAddOnArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var test = new Instance("test", InstanceArgs.builder() .name("custom_instance") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .addOn(InstanceAddOnArgs.builder() .type("AutoSnapshot") .snapshotTime("06:00") .status("Enabled") .build()) .tags(Map.of("foo", "bar")) .build()); } } ``` <!--End PulumiCodeChooser --> ## Import Using `pulumi import`, import Lightsail Instances using their name. For example: ```sh $ pulumi import aws:lightsail/instance:Instance gitlab_test 'custom_gitlab' ```
-
-
Constructor Summary
Constructors Constructor Description Instance(java.lang.String name)
Instance(java.lang.String name, InstanceArgs args)
Instance(java.lang.String name, InstanceArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<InstanceAddOn>>
addOn()
com.pulumi.core.Output<java.lang.String>
arn()
com.pulumi.core.Output<java.lang.String>
availabilityZone()
com.pulumi.core.Output<java.lang.String>
blueprintId()
com.pulumi.core.Output<java.lang.String>
bundleId()
com.pulumi.core.Output<java.lang.Integer>
cpuCount()
com.pulumi.core.Output<java.lang.String>
createdAt()
static Instance
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, InstanceState state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<java.lang.String>>
ipAddressType()
com.pulumi.core.Output<java.util.List<java.lang.String>>
ipv6Addresses()
com.pulumi.core.Output<java.lang.Boolean>
isStaticIp()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
keyPairName()
com.pulumi.core.Output<java.lang.String>
name()
com.pulumi.core.Output<java.lang.String>
privateIpAddress()
com.pulumi.core.Output<java.lang.String>
publicIpAddress()
com.pulumi.core.Output<java.lang.Double>
ramSize()
com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
tags()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
tagsAll()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
userData()
com.pulumi.core.Output<java.lang.String>
username()
-
-
-
Constructor Detail
-
Instance
public Instance(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
Instance
public Instance(java.lang.String name, InstanceArgs args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
Instance
public Instance(java.lang.String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
addOn
public com.pulumi.core.Output<java.util.Optional<InstanceAddOn>> addOn()
- Returns:
- The add on configuration for the instance. Detailed below.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- The ARN of the Lightsail instance (matches `id`).
-
availabilityZone
public com.pulumi.core.Output<java.lang.String> availabilityZone()
- Returns:
- The Availability Zone in which to create your instance. A list of available zones can be obtained using the AWS CLI command: [`aws lightsail get-regions --include-availability-zones`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-regions.html).
-
blueprintId
public com.pulumi.core.Output<java.lang.String> blueprintId()
- Returns:
- The ID for a virtual private server image. A list of available blueprint IDs can be obtained using the AWS CLI command: [`aws lightsail get-blueprints`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-blueprints.html).
-
bundleId
public com.pulumi.core.Output<java.lang.String> bundleId()
- Returns:
- The bundle of specification information. A list of available bundle IDs can be obtained using the AWS CLI command: [`aws lightsail get-bundles`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-bundles.html).
-
cpuCount
public com.pulumi.core.Output<java.lang.Integer> cpuCount()
- Returns:
- The number of vCPUs the instance has.
-
createdAt
public com.pulumi.core.Output<java.lang.String> createdAt()
- Returns:
- The timestamp when the instance was created.
-
ipAddressType
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> ipAddressType()
- Returns:
- The IP address type of the Lightsail Instance. Valid Values: `dualstack` | `ipv4`.
-
ipv6Addresses
public com.pulumi.core.Output<java.util.List<java.lang.String>> ipv6Addresses()
- Returns:
- List of IPv6 addresses for the Lightsail instance.
-
isStaticIp
public com.pulumi.core.Output<java.lang.Boolean> isStaticIp()
- Returns:
- A Boolean value indicating whether this instance has a static IP assigned to it.
-
keyPairName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> keyPairName()
- Returns:
- The name of your key pair. Created in the Lightsail console (cannot use `aws.ec2.KeyPair` at this time)
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The name of the Lightsail Instance. Names must be unique within each AWS Region in your Lightsail account.
-
privateIpAddress
public com.pulumi.core.Output<java.lang.String> privateIpAddress()
- Returns:
- The private IP address of the instance.
-
publicIpAddress
public com.pulumi.core.Output<java.lang.String> publicIpAddress()
- Returns:
- The public IP address of the instance.
-
ramSize
public com.pulumi.core.Output<java.lang.Double> ramSize()
- Returns:
- The amount of RAM in GB on the instance (e.g., 1.0).
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
-
userData
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> userData()
- Returns:
- Single lined launch script as a string to configure server with additional user data
-
username
public com.pulumi.core.Output<java.lang.String> username()
- Returns:
- The user name for connecting to the instance (e.g., ec2-user).
-
get
public static Instance get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-