Amazon ECR examples using SDK for SAP ABAP - AWS SDK Code Examples

There are more AWS SDK examples available in the AWS Doc SDK Examples GitHub repo.

Amazon ECR examples using SDK for SAP ABAP

The following code examples show you how to perform actions and implement common scenarios by using the AWS SDK for SAP ABAP with Amazon ECR.

Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.

Each example includes a link to the complete source code, where you can find instructions on how to set up and run the code in context.

Topics

Actions

The following code example shows how to use CreateRepository.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' oo_result = lo_ecr->createrepository( iv_repositoryname = iv_repository_name ). DATA(lv_repository_uri) = oo_result->get_repository( )->get_repositoryuri( ). MESSAGE |Repository created with URI: { lv_repository_uri }| TYPE 'I'. CATCH /aws1/cx_ecrrepositoryalrexex. " If repository already exists, retrieve it DATA lt_repo_names TYPE /aws1/cl_ecrrepositorynamels00=>tt_repositorynamelist. APPEND NEW /aws1/cl_ecrrepositorynamels00( iv_value = iv_repository_name ) TO lt_repo_names. DATA(lo_describe_result) = lo_ecr->describerepositories( it_repositorynames = lt_repo_names ). DATA(lt_repos) = lo_describe_result->get_repositories( ). IF lines( lt_repos ) > 0. READ TABLE lt_repos INDEX 1 INTO DATA(lo_repo). oo_result = NEW /aws1/cl_ecrcrerepositoryrsp( io_repository = lo_repo ). MESSAGE |Repository { iv_repository_name } already exists.| TYPE 'I'. ENDIF. ENDTRY.

The following code example shows how to use DeleteRepository.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' lo_ecr->deleterepository( iv_repositoryname = iv_repository_name iv_force = abap_true ). MESSAGE |Repository { iv_repository_name } deleted.| TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. ENDTRY.

The following code example shows how to use DescribeImages.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' " it_image_ids = VALUE #( ( NEW /aws1/cl_ecrimageidentifier( iv_imagetag = 'latest' ) ) ) IF it_image_ids IS NOT INITIAL. oo_result = lo_ecr->describeimages( iv_repositoryname = iv_repository_name it_imageids = it_image_ids ). ELSE. oo_result = lo_ecr->describeimages( iv_repositoryname = iv_repository_name ). ENDIF. DATA(lt_image_details) = oo_result->get_imagedetails( ). MESSAGE |Found { lines( lt_image_details ) } images in repository.| TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. CATCH /aws1/cx_ecrimagenotfoundex. MESSAGE 'Image not found.' TYPE 'I'. CATCH /aws1/cx_ecrinvalidparameterex. MESSAGE 'Invalid parameter provided.' TYPE 'I'. ENDTRY.
  • For API details, see DescribeImages in AWS SDK for SAP ABAP API reference.

The following code example shows how to use DescribeRepositories.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " it_repository_names = VALUE #( ( NEW /aws1/cl_ecrrepositorynamels00( iv_value = 'my-repository' ) ) ) oo_result = lo_ecr->describerepositories( it_repositorynames = it_repository_names ). DATA(lt_repositories) = oo_result->get_repositories( ). MESSAGE |Found { lines( lt_repositories ) } repositories.| TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. ENDTRY.

The following code example shows how to use GetAuthorizationToken.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. oo_result = lo_ecr->getauthorizationtoken( ). DATA(lt_auth_data) = oo_result->get_authorizationdata( ). IF lines( lt_auth_data ) > 0. READ TABLE lt_auth_data INDEX 1 INTO DATA(lo_auth_data). DATA(lv_token) = lo_auth_data->get_authorizationtoken( ). MESSAGE 'Authorization token retrieved.' TYPE 'I'. ENDIF. CATCH /aws1/cx_ecrserverexception. MESSAGE 'Server exception occurred.' TYPE 'I'. ENDTRY.

The following code example shows how to use GetRepositoryPolicy.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' oo_result = lo_ecr->getrepositorypolicy( iv_repositoryname = iv_repository_name ). DATA(lv_policy_text) = oo_result->get_policytext( ). MESSAGE 'Repository policy retrieved.' TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. CATCH /aws1/cx_ecrrepositoryplynot00. MESSAGE 'Repository policy not found.' TYPE 'I'. ENDTRY.

The following code example shows how to use PutLifeCyclePolicy.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' " iv_lifecycle_policy_text = '{"rules":[{"rulePriority":1,"description":"Expire images older than 14 days",...}]}' lo_ecr->putlifecyclepolicy( iv_repositoryname = iv_repository_name iv_lifecyclepolicytext = iv_lifecycle_policy_text ). MESSAGE |Lifecycle policy set for repository { iv_repository_name }.| TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. CATCH /aws1/cx_ecrvalidationex. MESSAGE 'Invalid lifecycle policy format.' TYPE 'I'. ENDTRY.

The following code example shows how to use SetRepositoryPolicy.

SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

TRY. " iv_repository_name = 'my-repository' " iv_policy_text = '{"Version":"2012-10-17", "Statement":[...]}' lo_ecr->setrepositorypolicy( iv_repositoryname = iv_repository_name iv_policytext = iv_policy_text ). MESSAGE |Policy set for repository { iv_repository_name }.| TYPE 'I'. CATCH /aws1/cx_ecrrepositorynotfndex. MESSAGE 'Repository not found.' TYPE 'I'. ENDTRY.