CreateMicrovmImage
Creates a MicroVM image from the specified code artifact and base image. The build is asynchronous — the image transitions from CREATING to CREATED on success, or CREATE_FAILED on failure. Use GetMicrovmImage to poll for completion.
Request Syntax
POST /2025-09-09/microvm-images HTTP/1.1
Content-type: application/json
{
"additionalOsCapabilities": [ "string" ],
"baseImageArn": "string",
"baseImageVersion": "string",
"buildRoleArn": "string",
"clientToken": "string",
"codeArtifact": { ... },
"cpuConfigurations": [
{
"architecture": "string"
}
],
"description": "string",
"egressNetworkConnectors": [ "string" ],
"environmentVariables": {
"string" : "string"
},
"hooks": {
"microvmHooks": {
"resume": "string",
"resumeTimeoutInSeconds": number,
"run": "string",
"runTimeoutInSeconds": number,
"suspend": "string",
"suspendTimeoutInSeconds": number,
"terminate": "string",
"terminateTimeoutInSeconds": number
},
"microvmImageHooks": {
"ready": "string",
"readyTimeoutInSeconds": number,
"validate": "string",
"validateTimeoutInSeconds": number
},
"port": number
},
"logging": { ... },
"name": "string",
"resources": [
{
"minimumMemoryInMiB": number
}
],
"tags": {
"string" : "string"
}
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- additionalOsCapabilities
-
Additional OS capabilities granted to the MicroVM runtime environment.
Type: Array of strings
Valid Values:
ALLRequired: No
- baseImageArn
-
The ARN of the Lambda-managed base MicroVM image to build upon. Use ListManagedMicrovmImages to discover available base images.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+Required: Yes
- baseImageVersion
-
The specific version of the base MicroVM image to use.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+Required: No
- buildRoleArn
-
The ARN of the IAM role assumed during the image build process. This role must have permissions to access the code artifact and any required resources.
Type: String
Length Constraints: Minimum length of 20. Maximum length of 2048.
Pattern:
arn:aws[a-z\-]*:iam::[0-9]{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+Required: Yes
- clientToken
-
A unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token, the operation returns the successful response without performing any further actions.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Required: No
- codeArtifact
-
The code artifact containing the application code and metadata for the MicroVM image.
Type: CodeArtifact object
Note: This object is a Union. Only one member of this object can be specified or returned.
Required: Yes
- cpuConfigurations
-
The list of supported CPU configurations for the MicroVM.
Type: Array of CpuConfiguration objects
Required: No
- description
-
A description of the MicroVM image.
Type: String
Required: No
- egressNetworkConnectors
-
The list of egress network connectors available to the MicroVM at runtime.
Type: Array of strings
Array Members: Minimum number of 0 items. Maximum number of 1 item.
Length Constraints: Minimum length of 1. Maximum length of 2048.
Required: No
- environmentVariables
-
Environment variables set in the MicroVM runtime environment.
Type: String to string map
Map Entries: Minimum number of 0 items. Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 256.
Key Pattern:
[^\s]+Value Length Constraints: Minimum length of 0. Maximum length of 4096.
Required: No
- hooks
-
Lifecycle hook configuration for MicroVMs and MicroVM images.
Type: Hooks object
Required: No
- logging
-
The logging configuration for build-time and runtime logs. Specify {"cloudWatch": {"logGroup": "..."}} to stream logs to a custom CloudWatch log group, or {"disabled": {}} to turn off logging.
Type: Logging object
Note: This object is a Union. Only one member of this object can be specified or returned.
Required: No
- name
-
The name of the MicroVM image. Must be unique within the AWS account.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
[a-zA-Z0-9-_]+Required: Yes
- resources
-
The resource requirements for the MicroVM.
Type: Array of Resources objects
Array Members: Minimum number of 0 items. Maximum number of 1 item.
Required: No
-
A set of key-value pairs that you can attach to the resource. Use tags to categorize resources for cost allocation, access control (ABAC), and organization.
Type: String to string map
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
([\p{L}\p{Z}\p{N}_.:/=+\-@]*)Value Length Constraints: Minimum length of 0. Maximum length of 256.
Value Pattern:
([\p{L}\p{Z}\p{N}_.:/=+\-@]*)Required: No
Response Syntax
HTTP/1.1 201
Content-type: application/json
{
"additionalOsCapabilities": [ "string" ],
"baseImageArn": "string",
"baseImageVersion": "string",
"buildRoleArn": "string",
"codeArtifact": { ... },
"cpuConfigurations": [
{
"architecture": "string"
}
],
"createdAt": number,
"description": "string",
"egressNetworkConnectors": [ "string" ],
"environmentVariables": {
"string" : "string"
},
"hooks": {
"microvmHooks": {
"resume": "string",
"resumeTimeoutInSeconds": number,
"run": "string",
"runTimeoutInSeconds": number,
"suspend": "string",
"suspendTimeoutInSeconds": number,
"terminate": "string",
"terminateTimeoutInSeconds": number
},
"microvmImageHooks": {
"ready": "string",
"readyTimeoutInSeconds": number,
"validate": "string",
"validateTimeoutInSeconds": number
},
"port": number
},
"imageArn": "string",
"imageVersion": "string",
"latestActiveImageVersion": "string",
"latestFailedImageVersion": "string",
"logging": { ... },
"name": "string",
"resources": [
{
"minimumMemoryInMiB": number
}
],
"state": "string",
"tags": {
"string" : "string"
},
"updatedAt": number
}
Response Elements
If the action is successful, the service sends back an HTTP 201 response.
The following data is returned in JSON format by the service.
- additionalOsCapabilities
-
Additional OS capabilities granted to the MicroVM runtime environment.
Type: Array of strings
Valid Values:
ALL - baseImageArn
-
The ARN of the base MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - baseImageVersion
-
The specific version of the base MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - buildRoleArn
-
The ARN of the IAM build role.
Type: String
Length Constraints: Minimum length of 20. Maximum length of 2048.
Pattern:
arn:aws[a-z\-]*:iam::[0-9]{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+ - codeArtifact
-
The code artifact containing the application code and metadata for the MicroVM image.
Type: CodeArtifact object
Note: This object is a Union. Only one member of this object can be specified or returned.
- cpuConfigurations
-
The list of supported CPU configurations for the MicroVM.
Type: Array of CpuConfiguration objects
- createdAt
-
The timestamp when the MicroVM image was created.
Type: Timestamp
- description
-
The description of the MicroVM image.
Type: String
- egressNetworkConnectors
-
The list of egress network connectors available to the MicroVM at runtime.
Type: Array of strings
Array Members: Minimum number of 0 items. Maximum number of 1 item.
Length Constraints: Minimum length of 1. Maximum length of 2048.
- environmentVariables
-
Environment variables set in the MicroVM runtime environment.
Type: String to string map
Map Entries: Minimum number of 0 items. Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 256.
Key Pattern:
[^\s]+Value Length Constraints: Minimum length of 0. Maximum length of 4096.
- hooks
-
Lifecycle hook configuration for MicroVMs and MicroVM images.
Type: Hooks object
- imageArn
-
The ARN of the created MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - imageVersion
-
The version of the MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - latestActiveImageVersion
-
The latest active version of the MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - latestFailedImageVersion
-
The latest failed version of the MicroVM image, if any.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
[^\s]+ - logging
-
The logging configuration for build-time and runtime logs. Specify {"cloudWatch": {"logGroup": "..."}} to stream logs to a custom CloudWatch log group, or {"disabled": {}} to turn off logging.
Type: Logging object
Note: This object is a Union. Only one member of this object can be specified or returned.
- name
-
The name of the MicroVM image.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
[a-zA-Z0-9-_]+ - resources
-
The resource requirements for the MicroVM.
Type: Array of Resources objects
Array Members: Minimum number of 0 items. Maximum number of 1 item.
- state
-
The current state of the MicroVM image.
Type: String
Valid Values:
CREATING | CREATED | CREATE_FAILED | UPDATING | UPDATED | UPDATE_FAILED | DELETING | DELETE_FAILED | DELETED -
A set of key-value pairs that you can attach to the resource. Use tags to categorize resources for cost allocation, access control (ABAC), and organization.
Type: String to string map
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
([\p{L}\p{Z}\p{N}_.:/=+\-@]*)Value Length Constraints: Minimum length of 0. Maximum length of 256.
Value Pattern:
([\p{L}\p{Z}\p{N}_.:/=+\-@]*) - updatedAt
-
The timestamp when the MicroVM image was last updated.
Type: Timestamp
Errors
For information about the errors that are common to all actions, see Common Error Types.
- AccessDeniedException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 403
- ConflictException
-
The request could not be completed due to a conflict with the current state of the resource.
- resourceId
-
The identifier of the resource that caused the conflict.
- resourceType
-
The type of the resource that caused the conflict.
HTTP Status Code: 409
- InternalServerException
-
An internal server error occurred. Retry the request later.
- retryAfterSeconds
-
The number of seconds to wait before retrying the request.
HTTP Status Code: 500
- ResourceNotFoundException
-
The specified resource does not exist.
- resourceId
-
The identifier of the resource that was not found.
- resourceType
-
The type of the resource that was not found.
HTTP Status Code: 404
- ServiceQuotaExceededException
-
You have exceeded a service quota for Lambda MicroVMs.
- quotaCode
-
The quota code of the exceeded service quota.
- resourceId
-
The identifier of the resource that exceeded the quota.
- resourceType
-
The type of the resource that exceeded the quota.
- serviceCode
-
The service code of the exceeded service quota.
HTTP Status Code: 402
- ThrottlingException
-
The request was denied due to request throttling. Retry the request later.
- quotaCode
-
The quota code of the throttled service quota.
- retryAfterSeconds
-
The number of seconds to wait before retrying the request.
- serviceCode
-
The service code of the throttled service quota.
HTTP Status Code: 429
- ValidationException
-
The input does not satisfy the constraints specified by the service.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: