SDK for SAP ABAP를 사용한 Auto Scaling 예제 - AWS SDK 코드 예제

Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. AWS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SDK for SAP ABAP를 사용한 Auto Scaling 예제

다음 코드 예제에서는 Auto Scaling과 함께 AWS SDK for SAP ABAP를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

주제

작업

다음 코드 예시는 CreateAutoScalingGroup의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

DATA lo_launch_template TYPE REF TO /aws1/cl_asclaunchtemplatespec. " Example: iv_group_name = 'my-auto-scaling-group' " Example: iv_launch_template_name = 'my-launch-template' " Example: iv_min_size = 1 " Example: iv_max_size = 3 " Example: iv_vpc_zone_identifier = 'subnet-12345,subnet-67890' (for VPC) TRY. " Create launch template specification lo_launch_template = NEW /aws1/cl_asclaunchtemplatespec( iv_launchtemplatename = iv_launch_template_name iv_version = '$Default' ). " Create the Auto Scaling group " Use VPCZoneIdentifier for VPC subnets, or AvailabilityZones for EC2-Classic IF iv_vpc_zone_identifier IS NOT INITIAL. " VPC-based deployment - use subnet IDs ao_asc->createautoscalinggroup( iv_autoscalinggroupname = iv_group_name iv_vpczoneidentifier = iv_vpc_zone_identifier io_launchtemplate = lo_launch_template iv_minsize = iv_min_size iv_maxsize = iv_max_size ). ELSE. " EC2-Classic or default VPC - use availability zones ao_asc->createautoscalinggroup( iv_autoscalinggroupname = iv_group_name it_availabilityzones = it_group_zones io_launchtemplate = lo_launch_template iv_minsize = iv_min_size iv_maxsize = iv_max_size ). ENDIF. " Wait for the group to be created (simplified - in production use proper polling) WAIT UP TO 10 SECONDS. MESSAGE 'Auto Scaling group created successfully' TYPE 'I'. CATCH /aws1/cx_ascalreadyexistsfault INTO DATA(lo_already_exists). RAISE EXCEPTION lo_already_exists. CATCH /aws1/cx_asclimitexceededfault INTO DATA(lo_limit_exceeded). RAISE EXCEPTION lo_limit_exceeded. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 DeleteAutoScalingGroup의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' TRY. ao_asc->deleteautoscalinggroup( iv_autoscalinggroupname = iv_group_name ). " Wait for the group to be deleted (simplified - in production use proper polling) WAIT UP TO 10 SECONDS. MESSAGE 'Auto Scaling group deleted successfully' TYPE 'I'. CATCH /aws1/cx_ascscaactivityinprg00 INTO DATA(lo_activity_in_progress). RAISE EXCEPTION lo_activity_in_progress. CATCH /aws1/cx_ascresourceinusefault INTO DATA(lo_resource_in_use). RAISE EXCEPTION lo_resource_in_use. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 DescribeAutoScalingGroups의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

DATA lt_group_names TYPE /aws1/cl_ascautoscgroupnames_w=>tt_autoscalinggroupnames. DATA lo_group_name TYPE REF TO /aws1/cl_ascautoscgroupnames_w. " Example: iv_group_name = 'my-auto-scaling-group' TRY. " Build group names parameter CREATE OBJECT lo_group_name EXPORTING iv_value = iv_group_name. APPEND lo_group_name TO lt_group_names. " Describe the Auto Scaling group DATA(lo_output) = ao_asc->describeautoscalinggroups( it_autoscalinggroupnames = lt_group_names ). " Return the first (and only) group in the result DATA(lt_groups) = lo_output->get_autoscalinggroups( ). IF lines( lt_groups ) > 0. READ TABLE lt_groups INDEX 1 INTO DATA(lo_group). oo_output = lo_group. ENDIF. MESSAGE 'Auto Scaling group information retrieved successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 DescribeAutoScalingInstances의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: it_instance_ids contains a list of instance IDs TRY. DATA(lo_output) = ao_asc->describeautoscalinginstances( it_instanceids = it_instance_ids ). ot_output = lo_output->get_autoscalinginstances( ). MESSAGE 'Auto Scaling instances information retrieved successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 DescribeScalingActivities의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' TRY. DATA(lo_output) = ao_asc->describescalingactivities( iv_autoscalinggroupname = iv_group_name ). ot_output = lo_output->get_activities( ). MESSAGE 'Scaling activities retrieved successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 DisableMetricsCollection의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' TRY. ao_asc->disablemetricscollection( iv_autoscalinggroupname = iv_group_name ). MESSAGE 'Metrics collection disabled successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 EnableMetricsCollection의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' " Example: it_metrics contains list of metrics like 'GroupMinSize', 'GroupMaxSize', etc. TRY. ao_asc->enablemetricscollection( iv_autoscalinggroupname = iv_group_name it_metrics = it_metrics iv_granularity = '1Minute' ). MESSAGE 'Metrics collection enabled successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 SetDesiredCapacity의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' " Example: iv_capacity = 2 TRY. ao_asc->setdesiredcapacity( iv_autoscalinggroupname = iv_group_name iv_desiredcapacity = iv_capacity iv_honorcooldown = abap_false ). MESSAGE 'Desired capacity set successfully' TYPE 'I'. CATCH /aws1/cx_ascscaactivityinprg00 INTO DATA(lo_activity_in_progress). RAISE EXCEPTION lo_activity_in_progress. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.
  • API 세부 정보는 SDK for SAP ABAP API 참조의 SetDesiredCapacity를 참조하세요. AWS

다음 코드 예시는 TerminateInstanceInAutoScalingGroup의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_instance_id = 'i-1234567890abcdef0' " Example: iv_decrease_capacity = abap_true TRY. DATA(lo_output) = ao_asc->terminateinstinautoscgroup( iv_instanceid = iv_instance_id iv_shoulddecrementdesiredcap = iv_decrease_capacity ). oo_output = lo_output->get_activity( ). MESSAGE 'Instance terminated successfully' TYPE 'I'. CATCH /aws1/cx_ascscaactivityinprg00 INTO DATA(lo_activity_in_progress). RAISE EXCEPTION lo_activity_in_progress. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

다음 코드 예시는 UpdateAutoScalingGroup의 사용 방법을 보여 줍니다.

SDK for SAP ABAP API
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

" Example: iv_group_name = 'my-auto-scaling-group' " Example: iv_max_size = 5 TRY. ao_asc->updateautoscalinggroup( iv_autoscalinggroupname = iv_group_name iv_maxsize = iv_max_size iv_minsize = iv_min_size ). MESSAGE 'Auto Scaling group updated successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_ascscaactivityinprg00 INTO DATA(lo_activity_in_progress). RAISE EXCEPTION lo_activity_in_progress. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.