Realizar solicitudes a la API - AWS Transfer Family

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realizar solicitudes a la API

Además de utilizar la consola, puede utilizar la API de AWS Transfer Family para configurar y administrar sus servidores mediante programación. En esta sección se describen las operaciones de AWS Transfer Family, la solicitud de formas para la autenticación y la administración de errores. Para obtener más información acerca de las regiones y los puntos de conexión disponibles para Transfer Family, consulte AWS Transfer FamilyPuntos de conexión y cuotas en la Referencia general de AWS

nota

También puede utilizar los AWS SDK cuando desarrolle aplicaciones con Transfer Family; Los AWS SDK para Java, .NET y PHP envuelven la API de Transfer Family subyacente, lo que simplifica las tareas de programación. Para obtener información sobre la descarga de las bibliotecas de SDK, consulte Código de muestra de bibliotecas.

Cabeceras de solicitud obligatorias para Transfer Family

En esta sección se describen los encabezados obligatorios que debe enviar con cada solicitud POST a AWS Transfer Family. Puede incluir encabezados HTTP para identificar información clave sobre la solicitud, incluidas la operación que desea invocar, la fecha de la solicitud y la información que indica su autorización como remitente de la solicitud. Los encabezados no distinguen entre mayúsculas y minúsculas y el orden de los encabezados no es importante.

En el siguiente ejemplo, se muestran los encabezados que se utilizan en la operación ListServers.

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}

Los siguientes son los encabezados que se deben incluir con las solicitudes POST a Transfer Family. Los encabezados siguientes que comienzan con "x-amz" son encabezados específicos para AWS. El resto de los encabezados que se muestran son encabezados comunes utilizados en transacciones HTTP.

Encabezado Descripción
Authorization Se requiere el encabezado de autorización. El formato es la firma de solicitud Sigv4 estándar, que se documenta en la sección Firmar solicitudes en la API de AWS.
Content-Type

Utiliza application/x-amz-json-1.1 como tipo de contenido para todas las solicitudes a Transfer Family.

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

Utilice el encabezado de host para especificar el punto de conexión de Transfer Family donde desea enviar la solicitud. Por ejemplo, transfer.us-east-1.amazonaws.com es el punto de conexión para la región Este de EE. UU. (Ohio). Para obtener más información acerca de las regiones y los puntos de conexión disponibles para Transfer Family, consulte AWS Transfer Family Puntos de conexión y cuotas de Referencia general de AWS.

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

Debe proporcionar la marca temporal que figura en el encabezado HTTP Date, o en el encabezado AWS x-amz-date. (Algunas bibliotecas de cliente HTTP no permiten configurar el encabezado Date). Cuando hay un encabezado x-amz-date presente, Transfer Family hace caso omiso de cualquier encabezado Date durante la autenticación de la solicitud. El formato x-amz-date debe ser ISO8601 con el formato AAAAMMDD'T'HHMMSS'Z'.

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

Este encabezado especifica la versión de la API y la operación que se está solicitando. Los valores de encabezado de destino se forman concatenando la versión de la API con el nombre de la API y están en el siguiente formato.

x-amz-target: TransferService.operationName

El valor OperationName (por ejemplo, ListServers) se encuentra en la lista de API, ListServers.

x-amz-security-token Este encabezado es obligatorio cuando las credenciales utilizadas para firmar la solicitud son temporales o de sesión (para obtener más información, consulte Uso de credenciales temporales con recursos de AWS en la Guía del usuario de IAM). Para obtener más información, consulte la sección Adición de la firma a la solicitud HTTP en Referencia general de Amazon Web Services para más información.

Entrada y firma de la solicitud de Transfer Family

Todas las entradas de la solicitud deben enviarse como parte de la carga útil de JSON en el cuerpo de la solicitud. En el caso de las acciones en las que todos los campos de solicitud son opcionales, por ejemplo, ListServers, tendrá que proporcionar un objeto JSON vacío en el cuerpo de la solicitud, por ejemplo, {}. La estructura de la solicitud/respuesta de la carga útil de Transfer Family está documentada en la referencia de la API existente, por ejemplo, DescribeServer.

Transfer Family admite la autenticación mediante AWS Signature Version 4. Para obtener más información, consulta Firmar solicitudes de API de AWS.

Respuestas de error

Cuando se produce un error, la información de encabezado de la respuesta contiene:

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

  • Un código de estado HTTP 4xx o 5xx adecuado

El cuerpo de una respuesta de error contiene información sobre el error que se ha producido. El siguiente ejemplo de respuesta de error muestra la sintaxis de salida de los elementos de respuesta comunes a todas las respuestas de error.

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

En la tabla siguiente se explican los campos de respuesta de error JSON que se muestran en la sintaxis anterior.

__type

Una de las excepciones de una llamada a la API Transfer Family.

Tipo: cadena

Mensaje o mensaje

Uno de los mensajes de código de error de operación.

nota

Algunas excepciones usan message y otras usan Message. Puede comprobar el código de la interfaz para determinar el tipo de mayúsculas y minúsculas adecuado. Como alternativa, puedes probar cada opción para ver cuál funciona.

Tipo: cadena

Recurso

El recurso para el que se invoca el error. Por ejemplo, si intenta crear un usuario que ya existe, el Resource es el nombre de usuario del usuario existente.

Tipo: cadena

ResourceType

El tipo de recurso al que se ha producido el error. Por ejemplo, si intenta crear un usuario que ya existe, el ResourceType es User.

Tipo: cadena

RetryAfterSeconds

La cantidad de segundos que se debe esperar antes de volver a intentar el comando.

Tipo: cadena

Ejemplos de respuestas de error

Si llama a la API de DescribeServer y especifica un servidor que no existe, se devuelve el siguiente cuerpo de JSON.

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

Si la ejecución de una API provoca una limitación, se devuelve el siguiente cuerpo de JSON.

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

Si utiliza la API de CreateServer y no tiene permisos suficientes para crear un servidor Transfer Family, se devuelve el siguiente cuerpo de JSON.

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

Si utiliza la API de CreateUser y especifica un usuario que ya existe, se devuelve el siguiente cuerpo de JSON.

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

Bibliotecas disponibles

AWS proporciona bibliotecas, código de muestra, tutoriales y otros recursos para los desarrolladores de software que prefieren crear aplicaciones usando API de un lenguaje específico en lugar de las herramientas de comandos y consulta de API. Estas bibliotecas proporcionan funciones básicas (que no se incluyen en las API), como la autenticación de solicitudes, los reintentos de solicitudes y la gestión de errores para que se pueda comenzar más fácilmente. Consulte Herramientas para crear en AWS

Para ver las bibliotecas y código de ejemplo en todos los idiomas, consulte Código de muestra y bibliotecas.