SDK AWS per SAP ABAP features - AWS SDK per SAP ABAP

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

SDK AWS per SAP ABAP features

SDK AWS per SAP ABAP offre le seguenti funzionalità.

Configurazione programmatica

Utilizza /n/AWS1/IMG IMG transacation for AWS SDK per SAP ABAP e l'applicazione Custom Business Configuration for AWS SDK per SAP ABAP - edizione BTP per la configurazione programmatica.

Per iniziare la configurazione programmatica, iniziate recuperando un oggetto di configurazione con il comando. get_config( )

data(lo_config) = lo_s3->get_config( ).

Ogni oggetto di configurazione implementa /AWS1/IF_RT_CONFIG un'interfaccia che include GET termini e SET termini corrispondenti a. IMG Ad esempio, la regione predefinita può essere sostituita. Vedi il seguente comando di esempio.

lo_s3->get_config( )->/aws1/if_rt_config~set_region( 'us-east-1' ).

Alcuni oggetti di configurazione non hanno alcuna IMG rappresentazione e possono essere impostati solo a livello di codice, ad esempio il numero massimo di tentativi. Vedi il seguente comando di esempio.

lo_s3->get_config( )->/aws1/if_rt_config~set_max_attempts( 10 ).

L'oggetto di configurazione di Servizi AWS può includere anche metodi specifici del servizio che non sono rappresentati in/aws1/if_rt_config. Ad esempio, Amazon S3 può indirizzare un bucket denominato foobucket utilizzando un endpoint foobucket.s3.region.amazonaws.com virtuale o uno stile di percorso. s3.region.amazonaws.com/foobucket Puoi imporre l'uso dello stile del percorso con il seguente comando di esempio.

lo_s3->get_config( )->set_forcepathstyle( abap_true ).

Per ulteriori informazioni sulle configurazioni dei servizi, vedere SDK AWS per SAP ABAP — Guida di riferimento delle API.

Waiter

Quando si lavora con la modalità asincrona AWS APIs, è necessario attendere che una determinata risorsa diventi disponibile prima di intraprendere ulteriori azioni. Ad esempio, l'CREATETABLE()API di Amazon DynamoDB risponde immediatamente con lo stato della tabella. CREATING È possibile avviare operazioni di lettura o scrittura solo dopo che lo stato della tabella è cambiato in. ACTIVE I camerieri ti danno la possibilità di confermare che AWS le risorse si trovano in uno stato particolare prima di eseguire azioni su di esse.

I camerieri utilizzano le operazioni di servizio per verificare lo stato delle AWS risorse fino a quando la risorsa non raggiunge lo stato previsto o finché non viene stabilito che la risorsa non raggiunge lo stato desiderato. Scrivere il codice per il sondaggio continuo delle risorse può richiedere molto tempo ed è soggetto a errori. AWS I camerieri aiutano a semplificare questa complessità assumendosi la responsabilità di eseguire i sondaggi per vostro conto.

Guarda il seguente esempio di Amazon S3 con un cameriere.

DATA(lo_session) = /aws1/cl_rt_session_aws=>create( cv_pfl ). DATA(lo_s3) = /aws1/cl_s3_factory=>create( lo_session ). " Create a bucket - initiates the process of creating an S3 bucket and might return before the bucket exists lo_s3→createbucket( iv_bucket = |amzn-s3-demo-bucket| ). " Wait until the newly created bucket becomes available lo_s3->get_waiter( )->bucketexists( iv_max_wait_time = 200 iv_bucket = |amzn-s3-demo-bucket| ).
  • In questo esempio, il client Amazon S3 viene utilizzato per creare un bucket. Il get_waiter() comando viene implementato per specificare quando. bucketexists

  • È necessario specificare il iv_max_wait_time parametro per ogni cameriere. Rappresenta la quantità totale di tempo che un cameriere deve attendere prima del completamento. Nell'esempio precedente, un cameriere può correre per 200 secondi.

  • Potrebbe essere necessario fornire input aggiuntivi per i parametri richiesti. Nell'esempio precedente, il nome del bucket Amazon S3 è obbligatorio per il parametro. iv_bucket

  • /AWS1/CX_RT_WAITER_FAILUREl'eccezione indica che il cameriere ha superato il tempo massimo specificato nel parametro. iv_max_wait_time

  • /AWS1/CX_RT_WAITER_TIMEOUTl'eccezione indica che il cameriere si è fermato perché non ha raggiunto lo stato desiderato.

Impaginatori

Alcune Servizio AWS operazioni offrono risposte paginate. Sono suddivise in pagine per restituire una quantità fissa di dati con ogni risposta. È necessario effettuare richieste successive con un token o un marker per recuperare l'intero set di risultati. Ad esempio, l'operazione ListObjectsV2 Amazon S3 restituisce fino a 1.000 oggetti alla volta. È necessario effettuare richieste successive con il token appropriato per ottenere la pagina successiva di risultati.

L'impaginazione è il processo di invio di richieste successive che riprendono dal punto in cui era stata interrotta una richiesta precedente. I paginatori sono iteratori dei risultati forniti da SDK per SAP ABAP. È possibile utilizzare paginated APIs con facilità e senza comprendere il meccanismo alla base dell'API utilizzando i token di paginazione.

Lavorare con gli impaginatori

È possibile creare impaginatori con il get_paginator() metodo che restituisce un oggetto paginatore. L'oggetto paginator richiama l'operazione da impaginare. L'oggetto paginator accetta i parametri richiesti da fornire all'API sottostante. Questo processo restituisce un oggetto iteratore che può essere utilizzato per iterare su risultati impaginati, utilizzando i metodi and. has_next() get_next()

  • has_next()restituisce un valore booleano che indica se ci sono più risposte o pagine disponibili per l'operazione chiamata.

  • get_next()restituisce la risposta dell'operazione.

L'esempio seguente elenca tutti gli oggetti in un bucket S3 recuperati utilizzando paginator.

DATA(lo_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ). DATA(lo_s3) = /aws1/cl_s3_factory=>create( lo_session ). TRY. DATA(lo_paginator) = lo_s3->get_paginator( ). DATA(lo_iterator) = lo_paginator->listobjectsv2( iv_bucket = 'example_bucket' ). WHILE lo_iterator->has_next( ). DATA(lo_output) = lo_iterator->get_next( ). LOOP AT lo_output->get_contents( ) INTO DATA(lo_object). WRITE: / lo_object->get_key( ), lo_object->get_size( ). ENDLOOP. ENDWHILE. CATCH /aws1/cx_rt_generic INTO DATA(lo_ex). MESSAGE lo_ex->if_message~get_text( ) TYPE 'I'. ENDTRY.

Comportamento di ripetizione

SDK per SAP ABAP consente di configurare il numero massimo di tentativi per le richieste che hanno esito negativo a causa di problemi di limitazione o errori transitori. Servizi AWS Il numero di tentativi consentiti a livello di client di servizio, ovvero il numero di volte in cui l'SDK ritenta l'operazione prima di fallire e generare un'eccezione, è specificato dall'attributo nell'oggetto di configurazione del servizio. AV_MAX_ATTEMPTS Quando viene creato un oggetto client di servizio, l'SDK configura l'AV_MAX_ATTEMPTSattributo su un valore predefinito di 3. L'oggetto di configurazione del servizio può essere utilizzato per impostare a livello di programmazione il numero massimo di tentativi sul valore desiderato. Vedi l'esempio seguente per maggiori dettagli.

" Retrieve configuration object using Amazon S3 service’s get_config( ) method DATA(lo_config) = lo_s3->get_config( ). " Set the maximum number of retries to 5 lo_config->/aws1/if_rt_config~set_max_attempts( 5 ). " Get the value of the maximum retry attempt. DATA(lv_max_retry_attempts) = lo_config->/aws1/if_rt_config~get_max_attempts( ).
Nota

Sebbene l'oggetto di configurazione ABAP SDK consenta di impostare la modalità di riprova con il /AWS1/IF_RT_CONFIG~SET_RETRY_MODE() metodo, l'SDK supporta solo la modalità di riprova. standard Per ulteriori informazioni, consultate Retry behavior in and Tools Reference Guide. AWS SDKs

Prefirmatari

Puoi usare presigned per concedere un accesso limitato nel tempo URLs ad alcuni. Servizi AWS Un URL predefinito può essere inserito in un browser o utilizzato da un programma per eseguire l'operazione del servizio. È possibile utilizzare l'URL prefirmato più volte, fino alla data e all'ora di scadenza. Per ulteriori informazioni, consulta Utilizzo dell' URLsSDK predefinito per i client SAP ABAP per i servizi che supportano i prefirmatari verrà chiamato un metodo speciale per creare un prefirmatario GET_PRESIGNER() per quel servizio. Quindi richiama un metodo del prefirmatario, che corrisponde ai metodi del client API, tranne per il fatto che restituiscono un URL predefinito invece di eseguire effettivamente l'operazione.

" Retrieve a presigner for Amazon S3 DATA(lo_presigner) = lo_s3->get_presigner( iv_expires_sec = 600 ). " the presigner getobject() method has the same signature as " lo_s3->getobject(), but it doesn't actually make the call. " to the service. It just prepares a presigned URL for a future call DATA(lo_presigned_req) = lo_presigner->getobject( iv_bucket = iv_bucket_name iv_key = iv_key ). " You can provide this URL to a web page, user, email etc so they " can retrieve the file. The URL will expire in 10 minutes. ov_url = lo_presigned_req->get_url( ).