Class Image


  • public class Image
    extends com.pulumi.resources.CustomResource
    Manages an AWS Lambda MicroVMs Image. Use this resource to define the base image, application code, and runtime configuration from which MicroVMs are launched. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetPartitionArgs;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.s3.Bucket;
     import com.pulumi.aws.s3.BucketArgs;
     import com.pulumi.aws.iam.RolePolicy;
     import com.pulumi.aws.iam.RolePolicyArgs;
     import com.pulumi.aws.s3.BucketObjectv2;
     import com.pulumi.aws.s3.BucketObjectv2Args;
     import com.pulumi.aws.lambdamicrovms.Image;
     import com.pulumi.aws.lambdamicrovms.ImageArgs;
     import com.pulumi.aws.lambdamicrovms.inputs.ImageCodeArtifactArgs;
     import com.pulumi.asset.FileAsset;
     import static com.pulumi.codegen.internal.Serialization.*;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             final var current = AwsFunctions.getPartition(GetPartitionArgs.builder()
                 .build());
     
             final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder()
                 .build());
     
             var example = new Role("example", RoleArgs.builder()
                 .name("example")
                 .assumeRolePolicy(serializeJson(
                     jsonObject(
                         jsonProperty("Version", "2012-10-17"),
                         jsonProperty("Statement", jsonArray(jsonObject(
                             jsonProperty("Action", "sts:AssumeRole"),
                             jsonProperty("Effect", "Allow"),
                             jsonProperty("Principal", jsonObject(
                                 jsonProperty("Service", "lambda.amazonaws.com")
                             ))
                         )))
                     )))
                 .build());
     
             var exampleBucket = new Bucket("exampleBucket", BucketArgs.builder()
                 .bucket("example")
                 .build());
     
             var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
                 .name("example")
                 .role(example.id())
                 .policy(exampleBucket.arn().applyValue(_arn -> serializeJson(
                     jsonObject(
                         jsonProperty("Version", "2012-10-17"),
                         jsonProperty("Statement", jsonArray(jsonObject(
                             jsonProperty("Action", jsonArray("s3:GetObject")),
                             jsonProperty("Effect", "Allow"),
                             jsonProperty("Resource", String.format("%s/*", _arn))
                         )))
                     ))))
                 .build());
     
             var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder()
                 .bucket(exampleBucket.bucket())
                 .key("code.zip")
                 .source(new FileAsset("code.zip"))
                 .build());
     
             var exampleImage = new Image("exampleImage", ImageArgs.builder()
                 .codeArtifact(ImageCodeArtifactArgs.builder()
                     .uri(Output.tuple(exampleBucket.bucket(), exampleBucketObjectv2.key()).applyValue(values -> {
                         var bucket = values.t1;
                         var key = values.t2;
                         return String.format("s3://%s/%s", bucket,key);
                     }))
                     .build())
                 .name("example")
                 .baseImageArn(String.format("arn:%s:lambda:%s:aws:microvm-image:al2023-1", current.partition(),currentGetRegion.region()))
                 .buildRoleArn(example.arn())
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `arn` (String) ARN of the Lambda MicroVMs Image. Using `pulumi import`, import Lambda MicroVMs Image using the `arn`. For example: ```sh $ pulumi import aws:lambdamicrovms/image:Image example arn:aws:lambda:us-east-1:123456789012:microvm-image:example ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Summary

      Constructors 
      Constructor Description
      Image​(java.lang.String name)  
      Image​(java.lang.String name, ImageArgs args)  
      Image​(java.lang.String name, ImageArgs 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<java.util.List<java.lang.String>>> additionalOsCapabilities()  
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.lang.String> baseImageArn()  
      com.pulumi.core.Output<java.lang.String> baseImageVersion()  
      com.pulumi.core.Output<java.lang.String> buildRoleArn()  
      com.pulumi.core.Output<ImageCodeArtifact> codeArtifact()  
      com.pulumi.core.Output<java.util.Optional<java.util.List<ImageCpuConfiguration>>> cpuConfigurations()  
      com.pulumi.core.Output<java.lang.String> createdAt()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()  
      com.pulumi.core.Output<java.util.List<java.lang.String>> egressNetworkConnectors()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> environmentVariables()  
      static Image get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ImageState 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.lang.String> imageVersion()  
      com.pulumi.core.Output<java.lang.String> latestActiveImageVersion()  
      com.pulumi.core.Output<java.lang.String> latestFailedImageVersion()  
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.lang.String> state()  
      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<ImageTimeouts>> timeouts()  
      com.pulumi.core.Output<java.lang.String> updatedAt()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Image

        public Image​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Image

        public Image​(java.lang.String name,
                     ImageArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Image

        public Image​(java.lang.String name,
                     ImageArgs 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

      • additionalOsCapabilities

        public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> additionalOsCapabilities()
        Returns:
        List of additional OS capabilities granted to the MicroVM runtime environment. Valid values: `ALL`.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the Image.
      • baseImageArn

        public com.pulumi.core.Output<java.lang.String> baseImageArn()
        Returns:
        ARN of the base MicroVM image. AWS-managed base images use ARNs of the form `arn:aws:lambda:<region>:aws:microvm-image:al2023-1`.
      • baseImageVersion

        public com.pulumi.core.Output<java.lang.String> baseImageVersion()
        Returns:
        Major version number of the base MicroVM image to use (e.g., `1`). If omitted, the service selects a version.
      • buildRoleArn

        public com.pulumi.core.Output<java.lang.String> buildRoleArn()
        Returns:
        ARN of the IAM role used to build the image. The role must be assumable by `lambda.amazonaws.com` and have access to the code artifact.
      • codeArtifact

        public com.pulumi.core.Output<ImageCodeArtifact> codeArtifact()
        Returns:
        Code artifact containing the application code and metadata for the image. See below.
      • cpuConfigurations

        public com.pulumi.core.Output<java.util.Optional<java.util.List<ImageCpuConfiguration>>> cpuConfigurations()
        Returns:
        CPU configuration for the MicroVM. See `cpuConfiguration` Block below.
      • createdAt

        public com.pulumi.core.Output<java.lang.String> createdAt()
        Returns:
        RFC3339 timestamp when the image was created.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the MicroVM image.
      • egressNetworkConnectors

        public com.pulumi.core.Output<java.util.List<java.lang.String>> egressNetworkConnectors()
        Returns:
        List of egress network connectors available to the MicroVM at runtime. Defaults to `["INTERNET_EGRESS"]`.
      • environmentVariables

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> environmentVariables()
        Returns:
        Map of environment variables set in the MicroVM runtime environment.
      • imageVersion

        public com.pulumi.core.Output<java.lang.String> imageVersion()
        Returns:
        Current version of the image.
      • latestActiveImageVersion

        public com.pulumi.core.Output<java.lang.String> latestActiveImageVersion()
        Returns:
        Latest active version of the image.
      • latestFailedImageVersion

        public com.pulumi.core.Output<java.lang.String> latestFailedImageVersion()
        Returns:
        Latest failed version of the image, if any.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the MicroVM image. Changing this value creates a new resource. The following arguments are optional:
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • state

        public com.pulumi.core.Output<java.lang.String> state()
        Returns:
        Current state of the image (e.g., `CREATED`).
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags assigned to the resource. If configured with a provider `defaultTags` 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:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • timeouts

        public com.pulumi.core.Output<java.util.Optional<ImageTimeouts>> timeouts()
      • updatedAt

        public com.pulumi.core.Output<java.lang.String> updatedAt()
        Returns:
        RFC3339 timestamp when the image was last updated.
      • get

        public static Image get​(java.lang.String name,
                                com.pulumi.core.Output<java.lang.String> id,
                                @Nullable
                                ImageState 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.