Esempi di Auto Scaling con SDK per SAP ABAP - AWS Esempi di codice SDK

Sono disponibili altri esempi AWS SDK nel repository AWS Doc SDK Examples. GitHub

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di Auto Scaling con SDK per SAP ABAP

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando l' AWS SDK per SAP ABAP con Auto Scaling.

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come utilizzare. CreateAutoScalingGroup

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. DeleteAutoScalingGroup

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. DescribeAutoScalingGroups

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. DescribeAutoScalingInstances

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. DescribeScalingActivities

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. DisableMetricsCollection

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. EnableMetricsCollection

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. SetDesiredCapacity

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.
  • Per i dettagli sulle API, SetDesiredCapacityconsulta AWS SDK for SAP ABAP API reference.

Il seguente esempio di codice mostra come utilizzare. TerminateInstanceInAutoScalingGroup

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.

Il seguente esempio di codice mostra come utilizzare. UpdateAutoScalingGroup

SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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.