Aprendí que boto3 ofrece dos niveles de abstracción: una API de bajo nivel llamada client que es un envoltorio delgado alrededor de la API HTTP de AWS y un cliente de alto nivel llamado resource que ofrece objetos reales de Python. Mi pregunta es, ¿dónde está la documentación de la API para la API de resource ?
Encontré esto:
https://boto3.readthedocs.io/en/stable/reference/services/ec2.html#client
Pero eso describe la API del client , y no hay una asignación 1 a 1 a la API de resource . Por ejemplo, la enumeración de instancias se llama describe_instances() en el objeto de client y se llama instances.all() en el objeto de resource .
A continuación encontré esto:
http://boto3.readthedocs.io/en/stable/reference/core/resources.html?highlight=resource
Esto describe un conjunto de clases base y métodos de fábrica, pero no describe la API para un servicio específico como EC2.
En tiempo de ejecución, imprimí un objeto de interés y descubrí que es un boto3.resources.factory.ec2.ServiceResource , pero la búsqueda en la documentación de boto3 no me muestra ninguna documentación legible por humanos para este recurso.
¿Existe un documento API que explique cuáles son todas las diferentes clases de Python y qué propiedades/métodos tienen? Puedo imprimir esto en tiempo de ejecución, por ejemplo, print(dir(ec2)) pero esta es una forma bastante tediosa de descubrir la API.
Gracias @jordanm por responder en los comentarios. Me estoy expandiendo en una respuesta más detallada.
La documentación del client contiene una sección llamada "Recurso de servicio" que no había notado antes.
Resaltó el recurso de servicio en la tabla de contenido:
Al hacer clic en este encabezado, se muestran los métodos y las propiedades de una instancia de recursos de EC2.
Espero que esta respuesta sea útil para algunos, aunque sea tarde.
Utilice estos dos enlaces en consecuencia
Considere el primero como la referencia principal. Este es el enlace proporcionado en la otra respuesta https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#service-resource
El segundo proporciona una vista más detallada de los métodos y atributos disponibles para un recurso en particular como instancia, imagen, VPC, etc.
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html
^this is almost the same link -- all options below the service-resource provide detailed info on that particular resource such as instance,image etc.,