Effettuare richieste API - AWS Transfer Family

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

Effettuare richieste API

Oltre a utilizzare la console, puoi utilizzare l'AWS Transfer FamilyAPI per configurare e gestire i tuoi server in modo programmatico. Questa sezione descrive le operazioni AWS Transfer Family, la firma delle richieste per l'autenticazione e la gestione degli errori. Per informazioni sulle regioni e gli endpoint disponibili per Transfer Family, consulta AWS Transfer Familyendpoint e quote nel Riferimenti generali di AWS

Nota

Puoi anche utilizzare gli AWS SDK per sviluppare applicazioni con Transfer Family;. Gli AWS SDK per Java, .NET e PHP racchiudono l'API Transfer Family sottostante, semplificando le attività di programmazione. Per informazioni sul download delle librerie SDK, consulta Librerie di codice di esempio.

Intestazioni di richiesta obbligatorie per Transfer Family

Questa sezione descrive le intestazioni obbligatorie a cui devi inviare con ogni richiesta POST. AWS Transfer Family Devi includere intestazioni HTTP per identificare le informazioni principali sulla richiesta, tra cui l'operazione che vuoi richiamare, la data della richiesta e le informazioni che indicano la tua autorizzazione come mittente della richiesta. Le intestazioni fanno distinzione tra maiuscole e minuscole, ma l'ordine delle intestazioni non è importante.

L'esempio seguente mostra le intestazioni utilizzate nell'ListServersoperazione.

POST / HTTP/1.1 Host: transfer.us-east-1.amazonaws.com x-amz-target: TransferService.ListServers x-amz-date: 20220507T012034Z Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20220507/us-east-1/transfer/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de Content-Type: application/x-amz-json-1.1 Content-Length: 17 {"MaxResults":10}

Di seguito sono riportate le intestazioni che devono essere incluse nelle richieste POST a Transfer Family. Le intestazioni mostrate di seguito che iniziano con «x-amz» sono specifiche per. AWS Tutte le altre intestazioni elencate sono intestazioni comuni usate in transazioni HTTP.

Intestazione Descrizione
Authorization L'intestazione di autorizzazione è obbligatoria. Il formato è la firma di richiesta Sigv4 standard, documentata nelle richieste dell'API di firma. AWS
Content-Type

Utilizza application/x-amz-json-1.1 come tipo di contenuto per tutte le richieste a Transfer Family.

Content-Type: application/x-amz-json-1.1
Host

Utilizza l'intestazione host per specificare l'endpoint Transfer Family a cui inviare la richiesta. Ad esempio, transfer.us-east-1.amazonaws.com è l'endpoint per la regione Stati Uniti orientali (Ohio). Per ulteriori informazioni sugli endpoint disponibili per Transfer Family, vedere AWS Transfer Familyendpoint e quote nel. Riferimenti generali di AWS

Host: transfer.region.amazonaws.com
x-amz-date

È necessario fornire il timestamp nell'intestazione HTTP o nell'Dateintestazione. AWS x-amz-date (Alcune librerie client HTTP non consentono di impostare l'intestazione Date) Quando è presente un'x-amz-dateintestazione, Transfer Family ignora qualsiasi Date intestazione durante l'autenticazione della richiesta. Il x-amz-date formato deve essere ISO8601, nel formato YYYYMMDD'T'HHMMSS'Z'.

x-amz-date: YYYYMMDD'T'HHMMSS'Z'
x-amz-target

Questa intestazione specifica la versione dell'API e l'operazione richiesta. I valori dell'intestazione target sono formati concatenando la versione API con il nome API e usano il formato seguente.

x-amz-target: TransferService.operationName

Il valore OperationName (ListServersad esempio) può essere trovato dall'elenco delle API,. ListServers

x-amz-security-token Questa intestazione è richiesta quando le credenziali utilizzate per firmare la richiesta sono temporanee o credenziali di sessione (per i dettagli, consulta Using temporary credentials with AWS resources nella IAM User Guide). Per ulteriori informazioni, consulta Aggiungere la firma alla richiesta HTTP nelRiferimenti generali di Amazon Web Services.

Input e firma delle richieste Transfer Family

Tutti gli input della richiesta devono essere inviati come parte del payload JSON nel corpo della richiesta. Per le azioni in cui tutti i campi di richiesta sono facoltativi, ad esempioListServers, è comunque necessario fornire un oggetto JSON vuoto nel corpo della richiesta, ad esempio. {} La struttura della richiesta/risposta del payload Transfer Family è documentata, ad esempio, nel riferimento all'API esistente. DescribeServer

Transfer Family supporta l'autenticazione tramite AWS Signature Version 4. Per i dettagli, consulta la sezione Richieste AWS API di firma.

Risposte agli errori

Quando si verifica un errore, le informazioni dell'intestazione della risposta contengono:

  • Tipo di contenuto: application/x-amz-json-1.1

  • Un codice di stato HTTP 4xx o 5xx appropriato

Il corpo di una risposta di errore contiene informazioni relative all'errore. La risposta di errore di esempio seguente mostra la sintassi di output degli elementi della risposta comuni a tutte le risposte di errore.

{ "__type": "String", "Message": "String", <!-- Message is lowercase in some instances --> "Resource": String, "ResourceType": String "RetryAfterSeconds": String }

La tabella seguente illustra i campi della risposta di errore JSON mostrata nella sintassi precedente.

__type

Una delle eccezioni a una chiamata API Transfer Family.

Tipo: stringa

Messaggio o messaggio

Uno dei messaggi dei codici di errore delle operazioni in .

Nota

Alcune eccezioni utilizzano message e altre utilizzanoMessage. Puoi controllare il codice dell'interfaccia per determinare il caso corretto. In alternativa, puoi testare ogni opzione per vedere quale funziona.

Tipo: stringa

Resource (Risorsa)

La risorsa per la quale viene invocato l'errore. Ad esempio, se si tenta di creare un utente già esistente, Resource è il nome utente dell'utente esistente.

Tipo: stringa

ResourceType

Il tipo di risorsa per cui viene richiamato l'errore. Ad esempio, se si tenta di creare un utente già esistente, ResourceType èUser.

Tipo: stringa

RetryAfterSeconds

Il numero di secondi di attesa prima di riprovare il comando.

Tipo: stringa

Esempi di risposte agli errori

Il seguente corpo JSON viene restituito se si chiama l'DescribeServerAPI e si specifica un server che non esiste.

{ "__type": "ResourceNotFoundException", "Message": "Unknown server", "Resource": "s-11112222333344444", "ResourceType": "Server" }

Il seguente corpo JSON viene restituito se l'esecuzione di un'API causa la limitazione.

{ "__type":"ThrottlingException", "RetryAfterSeconds":"1" }

Il seguente corpo JSON viene restituito se si utilizza l'CreateServerAPI e non si dispone di autorizzazioni sufficienti per creare un server Transfer Family.

{ "__type": "AccessDeniedException", "Message": "You do not have sufficient access to perform this action." }

Il seguente corpo JSON viene restituito se si utilizza l'CreateUserAPI e si specifica un utente già esistente.

{   "__type": "ResourceExistsException",   "Message": "User already exists", "Resource": "Alejandro-Rosalez", "ResourceType": "User" }

Librerie disponibili

AWSfornisce librerie, codice di esempio, tutorial e altre risorse per gli sviluppatori di software che preferiscono creare applicazioni utilizzando API specifiche del linguaggio anziché gli strumenti da riga di comando e l'API Query. Queste librerie forniscono funzioni di base (non incluse nelle API), come l'autenticazione delle richieste, i nuovi tentativi di richiesta e la gestione degli errori, in modo che sia più facile iniziare. Vedi Strumenti su cui basarsi AWS

Per le librerie e il codice di esempio in tutte le lingue, vedi Codice di esempio e librerie.