Faire des demandes d'API - AWS Transfer Family

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Faire des demandes d'API

Outre l'utilisation de la console, vous pouvez utiliser l'AWS Transfer FamilyAPI pour configurer et gérer vos serveurs par programmation. Cette section décrit les opérations AWS Transfer Family, la signature des requêtes pour l'authentification et la gestion des erreurs. Pour plus d'informations sur les régions et les points de terminaison disponibles pour Transfer Family, consultez la section AWS Transfer FamilyPoints de terminaison et quotas dans le Références générales AWS

Note

Vous pouvez également utiliser les AWS SDK lorsque vous développez des applications avec Transfer Family ;. Les AWS SDK pour Java, .NET et PHP intègrent l'API Transfer Family sous-jacente, simplifiant ainsi vos tâches de programmation. Pour plus d'informations sur le téléchargement des bibliothèques du SDK, consultez la section Exemples de bibliothèques de code.

Transfer Family a requis les en-têtes de demande

Cette section décrit les en-têtes obligatoires que vous devez envoyer avec chaque requête POST àAWS Transfer Family. Vous incluez les en-têtes HTTP pour identifier les informations clés relatives à la requête, y compris l'opération que vous souhaitez appeler, la date de la requête et les informations correspondant à votre autorisation en tant qu'expéditeur de la requête. Les en-têtes ne sont pas sensibles à la casse et leur ordre n'est pas important.

L'exemple suivant montre les en-têtes utilisés dans l'ListServersopération.

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}

Les en-têtes suivants doivent être inclus dans vos requêtes POST adressées à Transfer Family. Les en-têtes ci-dessous qui commencent par « x-amz » sont spécifiques à. AWS Tous les autres en-têtes répertoriés sont des en-têtes courants utilisés dans les transactions HTTP.

En-tête Description
Authorization L'en-tête d'autorisation est obligatoire. Le format est la signature de demande Sigv4 standard, qui est documentée dans la section Signing AWS API requests.
Content-Type

application/x-amz-json-1.1À utiliser comme type de contenu pour toutes les demandes adressées à Transfer Family.

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

Utilisez l'en-tête de l'hôte pour spécifier le point de terminaison Transfer Family auquel vous envoyez votre demande. Par exemple, transfer.us-east-1.amazonaws.com est le point de terminaison pour la région USA Est (Ohio). Pour plus d'informations sur les points de terminaison disponibles pour Transfer Family, consultez la section AWS Transfer FamilyPoints de terminaison et quotas dans le. Références générales AWS

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

Vous devez fournir l'horodatage dans l'Dateen-tête HTTP ou dans l'AWSx-amz-dateen-tête. (Certaines bibliothèques client HTTP ne vous permettent pas de définir l'en-tête Date.) Lorsqu'un x-amz-date en-tête est présent, Transfer Family ignore tout Date en-tête lors de l'authentification de la demande. Le x-amz-date format doit être ISO8601, au format YYYYMMDD'T'HHMMSS'Z'.

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

Cet en-tête spécifie la version de l'API et l'opération que vous demandez. Les valeurs d'en-tête cibles sont formées en concaténant la version de l'API avec le nom de l'API et ont le format suivant.

x-amz-target: TransferService.operationName

La valeur OperationName (ListServerspar exemple) se trouve dans la liste des API,. ListServers

x-amz-security-token Cet en-tête est obligatoire lorsque les informations d'identification utilisées pour signer la demande sont des informations d'identification temporaires ou des informations d'identification de session (pour plus de détails, voir Utilisation d'informations d'identification temporaires avec les AWS ressources dans le guide de l'utilisateur IAM). Voir Ajouter la signature à la requête HTTP dans le Référence générale d'Amazon Web Services pour plus d'informations.

Transfer Family : saisie et signature des demandes

Toutes les entrées de demande doivent être envoyées dans le cadre de la charge utile JSON dans le corps de la demande. Pour les actions dans lesquelles tous les champs de requête sont facultatifs, par exempleListServers, vous devez toujours fournir un objet JSON vide dans le corps de la demande, tel que{}. La structure de la demande/réponse de charge utile de Transfer Family est documentée dans la référence d'API existante, par exemple. DescribeServer

Transfer Family prend en charge l'authentification à l'aide de AWS Signature Version 4. Pour plus de détails, consultez la section Signature des demandes d'AWSAPI.

Réponses d'erreur

Lorsqu'il y a une erreur, les informations de l'en-tête de réponse contiennent :

  • Type de contenu : application/x-amz-json-1.1

  • Un code d'état HTTP approprié 4xx ou 5xx

Le corps d'une réponse d'erreur contient des informations sur l'erreur qui s'est produite. L'exemple de réponse d'erreur suivant illustre la syntaxe de sortie des éléments de réponse commune à toutes les réponses d'erreur.

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

Le tableau suivant explique les champs de réponse d'erreur JSON affichés dans la syntaxe précédente.

__type

L'une des exceptions à un appel d'API Transfer Family.

Type : chaîne

Message ou message

Un des messages de code d'erreur d'opération .

Note

Certaines exceptions utilisentmessage, d'autres utilisentMessage. Vous pouvez vérifier le code de votre interface afin de déterminer le cas approprié. Vous pouvez également tester chaque option pour voir laquelle fonctionne.

Type : chaîne

Ressource

La ressource pour laquelle l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà, il Resource s'agit du nom d'utilisateur de l'utilisateur existant.

Type : chaîne

ResourceType

Type de ressource pour lequel l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà, ResourceType c'est le casUser.

Type : chaîne

RetryAfterSeconds

Le nombre de secondes à attendre avant de réessayer la commande.

Type : chaîne

Exemples de réponses aux erreurs

Le corps JSON suivant est renvoyé si vous appelez l'DescribeServerAPI et spécifiez un serveur qui n'existe pas.

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

Le corps JSON suivant est renvoyé si l'exécution d'une API entraîne un ralentissement.

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

Le corps JSON suivant est renvoyé si vous utilisez l'CreateServerAPI et que vous ne disposez pas des autorisations suffisantes pour créer un serveur Transfer Family.

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

Le corps JSON suivant est renvoyé si vous utilisez l'CreateUserAPI et spécifiez un utilisateur qui existe déjà.

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

Bibliothèques disponibles

AWSfournit des bibliothèques, des exemples de code, des didacticiels et d'autres ressources aux développeurs de logiciels qui préfèrent créer des applications à l'aide d'API spécifiques au langage plutôt que des outils de ligne de commande et de l'API de requête. Ces bibliothèques fournissent des fonctions de base (non incluses dans les API), telles que l'authentification des demandes, les nouvelles tentatives et la gestion des erreurs, afin de faciliter le démarrage. Voir Outils sur lesquels s'appuyer AWS

Pour les bibliothèques et les exemples de code dans toutes les langues, voir Exemples de code et bibliothèques.