- Navigation GuideYou are on a Command (operation) page with structural examples. Use the navigation breadcrumb if you would like to return to the Client landing page.
CreateImageCommand
Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.
If you customized your instance with instance store volumes or Amazon EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.
For more information, see Create an Amazon EBS-backed Linux AMI in the Amazon Elastic Compute Cloud User Guide.
Example Syntax
Use a bare-bones client and the command you need to make an API call.
import { EC2Client, CreateImageCommand } from "@aws-sdk/client-ec2"; // ES Modules import
// const { EC2Client, CreateImageCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
const client = new EC2Client(config);
const input = { // CreateImageRequest
TagSpecifications: [ // TagSpecificationList
{ // TagSpecification
ResourceType: "capacity-reservation" || "client-vpn-endpoint" || "customer-gateway" || "carrier-gateway" || "coip-pool" || "declarative-policies-report" || "dedicated-host" || "dhcp-options" || "egress-only-internet-gateway" || "elastic-ip" || "elastic-gpu" || "export-image-task" || "export-instance-task" || "fleet" || "fpga-image" || "host-reservation" || "image" || "import-image-task" || "import-snapshot-task" || "instance" || "instance-event-window" || "internet-gateway" || "ipam" || "ipam-pool" || "ipam-scope" || "ipv4pool-ec2" || "ipv6pool-ec2" || "key-pair" || "launch-template" || "local-gateway" || "local-gateway-route-table" || "local-gateway-virtual-interface" || "local-gateway-virtual-interface-group" || "local-gateway-route-table-vpc-association" || "local-gateway-route-table-virtual-interface-group-association" || "natgateway" || "network-acl" || "network-interface" || "network-insights-analysis" || "network-insights-path" || "network-insights-access-scope" || "network-insights-access-scope-analysis" || "placement-group" || "prefix-list" || "replace-root-volume-task" || "reserved-instances" || "route-table" || "security-group" || "security-group-rule" || "snapshot" || "spot-fleet-request" || "spot-instances-request" || "subnet" || "subnet-cidr-reservation" || "traffic-mirror-filter" || "traffic-mirror-session" || "traffic-mirror-target" || "transit-gateway" || "transit-gateway-attachment" || "transit-gateway-connect-peer" || "transit-gateway-multicast-domain" || "transit-gateway-policy-table" || "transit-gateway-route-table" || "transit-gateway-route-table-announcement" || "volume" || "vpc" || "vpc-endpoint" || "vpc-endpoint-connection" || "vpc-endpoint-service" || "vpc-endpoint-service-permission" || "vpc-peering-connection" || "vpn-connection" || "vpn-gateway" || "vpc-flow-log" || "capacity-reservation-fleet" || "traffic-mirror-filter-rule" || "vpc-endpoint-connection-device-type" || "verified-access-instance" || "verified-access-group" || "verified-access-endpoint" || "verified-access-policy" || "verified-access-trust-provider" || "vpn-connection-device-type" || "vpc-block-public-access-exclusion" || "route-server" || "route-server-endpoint" || "route-server-peer" || "ipam-resource-discovery" || "ipam-resource-discovery-association" || "instance-connect-endpoint" || "verified-access-endpoint-target" || "ipam-external-resource-verification-token",
Tags: [ // TagList
{ // Tag
Key: "STRING_VALUE",
Value: "STRING_VALUE",
},
],
},
],
DryRun: true || false,
InstanceId: "STRING_VALUE", // required
Name: "STRING_VALUE", // required
Description: "STRING_VALUE",
NoReboot: true || false,
BlockDeviceMappings: [ // BlockDeviceMappingRequestList
{ // BlockDeviceMapping
Ebs: { // EbsBlockDevice
DeleteOnTermination: true || false,
Iops: Number("int"),
SnapshotId: "STRING_VALUE",
VolumeSize: Number("int"),
VolumeType: "standard" || "io1" || "io2" || "gp2" || "sc1" || "st1" || "gp3",
KmsKeyId: "STRING_VALUE",
Throughput: Number("int"),
OutpostArn: "STRING_VALUE",
Encrypted: true || false,
},
NoDevice: "STRING_VALUE",
DeviceName: "STRING_VALUE",
VirtualName: "STRING_VALUE",
},
],
};
const command = new CreateImageCommand(input);
const response = await client.send(command);
// { // CreateImageResult
// ImageId: "STRING_VALUE",
// };
CreateImageCommand Input
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
InstanceId Required | string | undefined | The ID of the instance. |
Name Required | string | undefined | A name for the new image. Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (), or underscores(_) |
BlockDeviceMappings | BlockDeviceMapping[] | undefined | The block device mappings. When using the CreateImage action:
|
Description | string | undefined | A description for the new image. |
DryRun | boolean | undefined | Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is |
NoReboot | boolean | undefined | Indicates whether or not the instance should be automatically rebooted before creating the image. Specify one of the following values:
Default: |
TagSpecifications | TagSpecification[] | undefined | The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the snapshots, or both.
If you specify other values for To tag an AMI or snapshot after it has been created, see CreateTags . |
CreateImageCommand Output
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
$metadata Required | ResponseMetadata | Metadata pertaining to this request. |
ImageId | string | undefined | The ID of the new AMI. |
Throws
Name | Fault | Details |
---|
Name | Fault | Details |
---|---|---|
EC2ServiceException | Base exception class for all service exceptions from EC2 service. |