Skip to content

/AWS1/CL_BDK=>CREATECUSTOMMODEL()

About CreateCustomModel

Creates a new custom model in Amazon Bedrock. After the model is active, you can use it for inference.

To use the model for inference, you must purchase Provisioned Throughput for it. You can't use On-demand inference with these custom models. For more information about Provisioned Throughput, see Provisioned Throughput.

The model appears in ListCustomModels with a customizationType of imported. To track the status of the new model, you use the GetCustomModel API operation. The model can be in the following states:

  • Creating - Initial state during validation and registration

  • Active - Model is ready for use in inference

  • Failed - Creation process encountered an error

Related APIs

Method Signature

IMPORTING

Required arguments:

iv_modelname TYPE /AWS1/BDKCUSTOMMODELNAME /AWS1/BDKCUSTOMMODELNAME

A unique name for the custom model.

io_modelsourceconfig TYPE REF TO /AWS1/CL_BDKMODELDATASOURCE /AWS1/CL_BDKMODELDATASOURCE

The data source for the model. The Amazon S3 URI in the model source must be for the Amazon-managed Amazon S3 bucket containing your model artifacts.

Optional arguments:

iv_modelkmskeyarn TYPE /AWS1/BDKKMSKEYARN /AWS1/BDKKMSKEYARN

The Amazon Resource Name (ARN) of the customer managed KMS key to encrypt the custom model. If you don't provide a KMS key, Amazon Bedrock uses an Amazon Web Services-managed KMS key to encrypt the model.

If you provide a customer managed KMS key, your Amazon Bedrock service role must have permissions to use it. For more information see Encryption of imported models.

iv_rolearn TYPE /AWS1/BDKROLEARN /AWS1/BDKROLEARN

The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock assumes to perform tasks on your behalf. This role must have permissions to access the Amazon S3 bucket containing your model artifacts and the KMS key (if specified). For more information, see Setting up an IAM service role for importing models in the Amazon Bedrock User Guide.

it_modeltags TYPE /AWS1/CL_BDKTAG=>TT_TAGLIST TT_TAGLIST

A list of key-value pairs to associate with the custom model resource. You can use these tags to organize and identify your resources.

For more information, see Tagging resources in the Amazon Bedrock User Guide.

iv_clientrequesttoken TYPE /AWS1/BDKIDEMPOTENCYTOKEN /AWS1/BDKIDEMPOTENCYTOKEN

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.

RETURNING

oo_output TYPE REF TO /aws1/cl_bdkcreatecustmodelrsp /AWS1/CL_BDKCREATECUSTMODELRSP

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

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->/aws1/if_bdk~createcustommodel(
  io_modelsourceconfig = new /aws1/cl_bdkmodeldatasource( new /aws1/cl_bdks3datasource( |string| ) )
  it_modeltags = VALUE /aws1/cl_bdktag=>tt_taglist(
    (
      new /aws1/cl_bdktag(
        iv_key = |string|
        iv_value = |string|
      )
    )
  )
  iv_clientrequesttoken = |string|
  iv_modelkmskeyarn = |string|
  iv_modelname = |string|
  iv_rolearn = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_modelarn = lo_result->get_modelarn( ).
ENDIF.

Successful CreateCustomModel API call

Successful CreateCustomModel API call

DATA(lo_result) = lo_client->/aws1/if_bdk~createcustommodel(
  io_modelsourceconfig = new /aws1/cl_bdkmodeldatasource( new /aws1/cl_bdks3datasource( |s3://my-bucket/folder| ) )
  it_modeltags = VALUE /aws1/cl_bdktag=>tt_taglist(
    (
      new /aws1/cl_bdktag(
        iv_key = |foo|
        iv_value = |foo|
      )
    )
    (
      new /aws1/cl_bdktag(
        iv_key = |foo|
        iv_value = |foo|
      )
    )
  )
  iv_clientrequesttoken = |foo|
  iv_modelkmskeyarn = |arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab|
  iv_modelname = |SampleModel|
  iv_rolearn = |arn:aws:iam::123456789012:role/SampleRole|
).