Skip to content

/AWS1/IF_LMV=>CREATEMICROVMIMAGE()

About 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.

Method Signature

METHODS /AWS1/IF_LMV~CREATEMICROVMIMAGE
  IMPORTING
    !IV_BASEIMAGEARN TYPE /AWS1/LMVNONBLANKSTRING OPTIONAL
    !IV_BASEIMAGEVERSION TYPE /AWS1/LMVVERSION OPTIONAL
    !IV_BUILDROLEARN TYPE /AWS1/LMVROLEARN OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/LMVSTRING OPTIONAL
    !IO_CODEARTIFACT TYPE REF TO /AWS1/CL_LMVCODEARTIFACT OPTIONAL
    !IO_LOGGING TYPE REF TO /AWS1/CL_LMVLOGGING OPTIONAL
    !IT_EGRESSNETWORKCONNECTORS TYPE /AWS1/CL_LMVNETWORKCNCTRLIST_W=>TT_NETWORKCONNECTORLIST OPTIONAL
    !IT_CPUCONFIGURATIONS TYPE /AWS1/CL_LMVCPUCONFIGURATION=>TT_CPUCONFIGURATIONLIST OPTIONAL
    !IT_RESOURCES TYPE /AWS1/CL_LMVRESOURCES=>TT_RESOURCESLIST OPTIONAL
    !IT_ADDITIONALOSCAPABILITIES TYPE /AWS1/CL_LMVCAPABILITYLIST_W=>TT_CAPABILITYLIST OPTIONAL
    !IO_HOOKS TYPE REF TO /AWS1/CL_LMVHOOKS OPTIONAL
    !IT_ENVIRONMENTVARIABLES TYPE /AWS1/CL_LMVENVVARIABLEMAP_W=>TT_ENVIRONMENTVARIABLEMAP OPTIONAL
    !IV_NAME TYPE /AWS1/LMVIMAGENAME OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_LMVTAGS_W=>TT_TAGS OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/LMVSTRING OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_lmvcreatemvmimagersp
  RAISING
    /AWS1/CX_LMVACCESSDENIEDEX
    /AWS1/CX_LMVCONFLICTEXCEPTION
    /AWS1/CX_LMVINTERNALSERVEREX
    /AWS1/CX_LMVRESOURCENOTFOUNDEX
    /AWS1/CX_LMVSERVICEQUOTAEXCDEX
    /AWS1/CX_LMVTHROTTLINGEX
    /AWS1/CX_LMVVLDTNEXCEPTION
    /AWS1/CX_LMVCLIENTEXC
    /AWS1/CX_LMVSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_baseimagearn TYPE /AWS1/LMVNONBLANKSTRING /AWS1/LMVNONBLANKSTRING

The ARN of the Lambda-managed base MicroVM image to build upon. Use ListManagedMicrovmImages to discover available base images.

iv_buildrolearn TYPE /AWS1/LMVROLEARN /AWS1/LMVROLEARN

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.

io_codeartifact TYPE REF TO /AWS1/CL_LMVCODEARTIFACT /AWS1/CL_LMVCODEARTIFACT

The code artifact containing the application code and metadata for the MicroVM image.

iv_name TYPE /AWS1/LMVIMAGENAME /AWS1/LMVIMAGENAME

The name of the MicroVM image. Must be unique within the AWS account.

Optional arguments:

iv_baseimageversion TYPE /AWS1/LMVVERSION /AWS1/LMVVERSION

The specific version of the base MicroVM image to use.

iv_description TYPE /AWS1/LMVSTRING /AWS1/LMVSTRING

A description of the MicroVM image.

io_logging TYPE REF TO /AWS1/CL_LMVLOGGING /AWS1/CL_LMVLOGGING

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.

it_egressnetworkconnectors TYPE /AWS1/CL_LMVNETWORKCNCTRLIST_W=>TT_NETWORKCONNECTORLIST TT_NETWORKCONNECTORLIST

The list of egress network connectors available to the MicroVM at runtime.

it_cpuconfigurations TYPE /AWS1/CL_LMVCPUCONFIGURATION=>TT_CPUCONFIGURATIONLIST TT_CPUCONFIGURATIONLIST

The list of supported CPU configurations for the MicroVM.

it_resources TYPE /AWS1/CL_LMVRESOURCES=>TT_RESOURCESLIST TT_RESOURCESLIST

The resource requirements for the MicroVM.

it_additionaloscapabilities TYPE /AWS1/CL_LMVCAPABILITYLIST_W=>TT_CAPABILITYLIST TT_CAPABILITYLIST

Additional OS capabilities granted to the MicroVM runtime environment.

io_hooks TYPE REF TO /AWS1/CL_LMVHOOKS /AWS1/CL_LMVHOOKS

Lifecycle hook configuration for MicroVMs and MicroVM images.

it_environmentvariables TYPE /AWS1/CL_LMVENVVARIABLEMAP_W=>TT_ENVIRONMENTVARIABLEMAP TT_ENVIRONMENTVARIABLEMAP

Environment variables set in the MicroVM runtime environment.

it_tags TYPE /AWS1/CL_LMVTAGS_W=>TT_TAGS TT_TAGS

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.

iv_clienttoken TYPE /AWS1/LMVSTRING /AWS1/LMVSTRING

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.

RETURNING

oo_output TYPE REF TO /aws1/cl_lmvcreatemvmimagersp /AWS1/CL_LMVCREATEMVMIMAGERSP

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->createmicrovmimage(
  io_codeartifact = new /aws1/cl_lmvcodeartifact( |string| )
  io_hooks = new /aws1/cl_lmvhooks(
    io_microvmhooks = new /aws1/cl_lmvmicrovmhooks(
      iv_resume = |string|
      iv_resumetimeoutinseconds = 123
      iv_run = |string|
      iv_runtimeoutinseconds = 123
      iv_suspend = |string|
      iv_suspendtimeoutinseconds = 123
      iv_terminate = |string|
      iv_terminatetimeoutinseconds = 123
    )
    io_microvmimagehooks = new /aws1/cl_lmvmicrovmimagehooks(
      iv_ready = |string|
      iv_readytimeoutinseconds = 123
      iv_validate = |string|
      iv_validatetimeoutinseconds = 123
    )
    iv_port = 123
  )
  io_logging = new /aws1/cl_lmvlogging(
    io_cloudwatch = new /aws1/cl_lmvcloudwatchlogging(
      iv_loggroup = |string|
      iv_logstream = |string|
    )
    io_disabled = new /aws1/cl_lmvloggingdisabled( )
  )
  it_additionaloscapabilities = VALUE /aws1/cl_lmvcapabilitylist_w=>tt_capabilitylist(
    ( new /aws1/cl_lmvcapabilitylist_w( |string| ) )
  )
  it_cpuconfigurations = VALUE /aws1/cl_lmvcpuconfiguration=>tt_cpuconfigurationlist(
    ( new /aws1/cl_lmvcpuconfiguration( |string| ) )
  )
  it_egressnetworkconnectors = VALUE /aws1/cl_lmvnetworkcnctrlist_w=>tt_networkconnectorlist(
    ( new /aws1/cl_lmvnetworkcnctrlist_w( |string| ) )
  )
  it_environmentvariables = VALUE /aws1/cl_lmvenvvariablemap_w=>tt_environmentvariablemap(
    (
      VALUE /aws1/cl_lmvenvvariablemap_w=>ts_envvariablemap_maprow(
        key = |string|
        value = new /aws1/cl_lmvenvvariablemap_w( |string| )
      )
    )
  )
  it_resources = VALUE /aws1/cl_lmvresources=>tt_resourceslist(
    ( new /aws1/cl_lmvresources( 123 ) )
  )
  it_tags = VALUE /aws1/cl_lmvtags_w=>tt_tags(
    (
      VALUE /aws1/cl_lmvtags_w=>ts_tags_maprow(
        key = |string|
        value = new /aws1/cl_lmvtags_w( |string| )
      )
    )
  )
  iv_baseimagearn = |string|
  iv_baseimageversion = |string|
  iv_buildrolearn = |string|
  iv_clienttoken = |string|
  iv_description = |string|
  iv_name = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_nonblankstring = lo_result->get_imagearn( ).
  lv_imagename = lo_result->get_name( ).
  lv_microvmimagestate = lo_result->get_state( ).
  lv_nonblankstring = lo_result->get_latestactiveimageversion( ).
  lv_nonblankstring = lo_result->get_latestfailedimageversion( ).
  lv_timestamp = lo_result->get_createdat( ).
  lv_nonblankstring = lo_result->get_baseimagearn( ).
  lv_version = lo_result->get_baseimageversion( ).
  lv_rolearn = lo_result->get_buildrolearn( ).
  lv_string = lo_result->get_description( ).
  lo_codeartifact = lo_result->get_codeartifact( ).
  IF lo_codeartifact IS NOT INITIAL.
    lv_nonblankstring = lo_codeartifact->get_uri( ).
  ENDIF.
  lo_logging = lo_result->get_logging( ).
  IF lo_logging IS NOT INITIAL.
    lo_loggingdisabled = lo_logging->get_disabled( ).
    IF lo_loggingdisabled IS NOT INITIAL.
    ENDIF.
    lo_cloudwatchlogging = lo_logging->get_cloudwatch( ).
    IF lo_cloudwatchlogging IS NOT INITIAL.
      lv_string_1 = lo_cloudwatchlogging->get_loggroup( ).
      lv_string_1 = lo_cloudwatchlogging->get_logstream( ).
    ENDIF.
  ENDIF.
  LOOP AT lo_result->get_egressnetworkconnectors( ) into lo_row.
    lo_row_1 = lo_row.
    IF lo_row_1 IS NOT INITIAL.
      lv_networkconnector = lo_row_1->get_value( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_cpuconfigurations( ) into lo_row_2.
    lo_row_3 = lo_row_2.
    IF lo_row_3 IS NOT INITIAL.
      lv_architecture = lo_row_3->get_architecture( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_resources( ) into lo_row_4.
    lo_row_5 = lo_row_4.
    IF lo_row_5 IS NOT INITIAL.
      lv_integer = lo_row_5->get_minimummemoryinmib( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_additionaloscapabilities( ) into lo_row_6.
    lo_row_7 = lo_row_6.
    IF lo_row_7 IS NOT INITIAL.
      lv_capability = lo_row_7->get_value( ).
    ENDIF.
  ENDLOOP.
  lo_hooks = lo_result->get_hooks( ).
  IF lo_hooks IS NOT INITIAL.
    lv_integer = lo_hooks->get_port( ).
    lo_microvmhooks = lo_hooks->get_microvmhooks( ).
    IF lo_microvmhooks IS NOT INITIAL.
      lv_hookstate = lo_microvmhooks->get_run( ).
      lv_integer = lo_microvmhooks->get_runtimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_resume( ).
      lv_integer = lo_microvmhooks->get_resumetimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_suspend( ).
      lv_integer = lo_microvmhooks->get_suspendtimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_terminate( ).
      lv_integer = lo_microvmhooks->get_termtimeoutinseconds( ).
    ENDIF.
    lo_microvmimagehooks = lo_hooks->get_microvmimagehooks( ).
    IF lo_microvmimagehooks IS NOT INITIAL.
      lv_hookstate = lo_microvmimagehooks->get_ready( ).
      lv_integer = lo_microvmimagehooks->get_readytimeoutinseconds( ).
      lv_hookstate = lo_microvmimagehooks->get_validate( ).
      lv_integer = lo_microvmimagehooks->get_validatetimeoutinseconds( ).
    ENDIF.
  ENDIF.
  LOOP AT lo_result->get_environmentvariables( ) into ls_row_8.
    lv_key = ls_row_8-key.
    lo_value = ls_row_8-value.
    IF lo_value IS NOT INITIAL.
      lv_environmentvariablevalu = lo_value->get_value( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_tags( ) into ls_row_9.
    lv_key_1 = ls_row_9-key.
    lo_value_1 = ls_row_9-value.
    IF lo_value_1 IS NOT INITIAL.
      lv_tagvalue = lo_value_1->get_value( ).
    ENDIF.
  ENDLOOP.
  lv_timestamp = lo_result->get_updatedat( ).
  lv_nonblankstring = lo_result->get_imageversion( ).
ENDIF.