SDK para Python
El SDK para Python de Oracle Cloud Infrastructure permite escribir código para gestionar recursos de la Oracle Cloud Infrastructure.
Este SDK y el ejemplo cuentan con la licencia universal permisiva 1.0 y la licencia de Apache 2.0; se otorga una licencia de contenido de terceros independiente como se describe en el código.
Descargar: el SDK para Python está disponible en GitHub o el Índice de paquetes de Python (PyPi).
Documentación de referencia: disponible en docs.cloud.oracle.com.
Cloud Shell: el SDK para Python está preconfigurado con sus credenciales y listo para su uso inmediato desde Cloud Shell. Para obtener más información sobre el uso del SDK para Python desde Cloud Shell, consulte Inicio rápido de Cloud Shell del SDK para Python.
Imagen de Oracle Linux Cloud Developer: el SDK para Python está preinstalado en la imagen del desarrollador de Oracle Linux Cloud Developer. Para obtener más información, consulte Oracle Linux Cloud Developer.
Servicios soportados
- Access Governance
- Gestión de cuentas
- Idioma de IA
- Voz de IA
- Visión de IA
- Análisis en la nube
- Anuncios
- Gateway de API
- Application Dependency Management
- Gestión de aplicaciones
- Application Performance Monitoring
- Auditoría
- Recuperación autónoma
- Escala automática (recursos informáticos)
- Bastion
- Big Data Service
- Blockchain Platform
- Presupuestos
- Compilación
- OCI Cache
- Certificados
- Puente de Cloud
- Migraciones en la nube
- Compute Cloud@Customer
- Agente de instancia informática (Oracle Cloud Agent)
- Kubernetes Engine
- Container Instances
- Gestión de contenido
- Servicios básicos (redes, recursos informáticos, volumen en bloque)
- Cloud Guard
- Migraciones en la nube
- Grupos de colocación de cluster
- Hub de conector
- Panel de control de la consola
- Catálogo de datos
- Flujo de datos
- Integración de datos
- Data Labeling
- Seguridad de los datos
- Ciencia de datos
- Database
- Gestión del ciclo de vida de una base de datos
- Database Management
- Database Migration
- Herramientas de base de datos
- Delegar control de acceso
- Señal de demanda
- DevOps
- Asistente digital
- Medios digitales
- Recuperación ante desastres
- DNS
- Descripción del documento
- Entrega por correo electrónico
- Almacén de Enterprise Manager
- Events
- Actualización de conjunto de Exadata
- File Storage
- Almacenamiento de archivos con Lustre
- Gestión de aplicación de conjuntos
- Functions
- Fusion Apps como servicio
- IA generativa
- Agente de IA generativa
- Inferencia de IA generativa
- Artefactos genéricos
- Globally Distributed Database
- GoldenGate
- Reglas de gobernanza
- Comprobaciones del sistema
- IAM
- Dominios de identidad
- Integration Cloud
- Java Management
- Descargas de Java Management Service
- Gestión de claves (para el servicio Vault)
- Gestor de licencias
- Límites
- Equilibrador de carga
- Registro
- Análisis de registro
- Búsqueda de registro
- Ingestión de registro
- Acceso gestionado
- Servicios gestionados para Mac
- Agente de gestión en la nube
- Panel de control de gestión
- Marketplace
- Oferta privada de Marketplace
- Supervisión
- HeatWave
- Firewall de red
- Equilibrio de carga de red
- Supervisión de red
- Topología de red
- NoSQL Database Cloud
- Notificaciones
- Object Storage
- Centro de control de OCI
- OCI Registry
- Escritorios seguros de OCI
- OneSubscription
- Operations Insights
- Operator Access Control
- Optimizer
- Organizations
- Gestión del sistema operativo
- Hub de gestión de sistema operativo
- PostgreSQL
- Automatización de procesos
- Editor
- Servicio de colas
- Cuotas
- Gestor de recursos
- Planificador de Recursos
- Roving Edge Infrastructure
- Buscar
- Gestión de secreto (para el servicio de almacén)
- Escritorios seguros
- Atributo de seguridad
- Service Catalog
- Service Mesh
- Gestión de código fuente
- Stack Monitoring
- Streaming
- Gestión de soporte
- Threat Intelligence
- Usage
- Visual Builder
- Solución de VMWare
- Vulnerability Scanning
- Web Application Acceleration y Seguridad
- Gestión de WebLogic
- Solicitudes de trabajo (recursos informáticos, base de datos)
- Zero Trust Packet Routing
Soporte de Python
Versiones y sistemas operativos de Python soportados
En esta tabla se muestran las versiones de Python soportadas por el SDK de OCI para Python para cada sistema operativo:
Sistema operativo | Versiones de Python admitidas para CLI |
---|---|
CentOS 7 | De 3.6 a 3.9 |
CentOS 8 | De 3.6 a 3.9 |
Oracle Autonomous Linux 7.9 | De 3.6 a 3.9 |
Oracle Linux 7.8 | De 3.6 a 3.9 |
Oracle Linux 7.9 | De 3.6 a 3.9 |
Oracle Linux 8 | De 3.6 a 3.11 |
Oracle Linux 9 | De 3.7 a 3.11 |
Ubuntu 18.0.4 | De 3.6 a 3.11 |
Ubuntu 20.0.4 | De 3.6 a 3.11 |
Escritorio de Windows 10 y 11 | De 3.6 a 3.11 |
Windows Server (2012/2016/2019) | De 3.6 a 3.11 |
Es posible que las versiones más recientes de Python no estén soportadas de forma inmediata. El SDK de OCI para Python podría funcionar en sistemas operativos que no se muestran, pero no probamos su compatibilidad.
Instalación con Resource Manager
Puede utilizar Resource Manager para instalar Oracle Cloud Development Kit en una instancia de Compute en el compartimento. Oracle Cloud Development Kit incluye el SDK para Python, junto con otras herramientas de desarrollo de de Oracle.
Instalación con yum
Si utiliza Oracle Linux 7 u 8, puede utilizar yum para instalar el SDK de OCI para Python.
En el siguiente ejemplo, se muestra cómo utilizar yum para instalar el SDK de OCI para Python 3.6:
sudo yum install python36-oci-sdk
En este ejemplo, se muestra cómo utilizar yum para instalar el SDK de OCI para Python 2.7:
sudo yum install python-oci-sdk
Cifrado de cliente
El cifrado del cliente permite cifrar datos en el cliente antes que almacenarlos localmente o utilizarlos con otros Servicios de Oracle Cloud Infrastructure.
Para utilizar el cifrado del cliente, debe crear una clave de cifrado maestra (MEK) mediante el servicio de gestión de claves. Esto se puede hacer con las operaciones CreateKey o ImportKey.
La MEK se utiliza para generar una clave de cifrado de datos (DEK) para cifrar cada carga útil. Una copia cifrada de esta DEK (cifrada con la MEK) y otras partes de metadatos se incluyen en la carga útil cifrada devuelta por los SDK a fin de que se puedan utilizar para el descifrado.
Ejemplos
En el siguiente ejemplo de código se muestra cómo cifrar una cadena:
import oci
# user supplied vars
vault_id = TEST_VAULT_OCID
master_key_id = TEST_MASTER_KEY_ID
data_to_encrypt_bytes = b"This is a secret message"
config = oci.config.from_file()
kms_master_key = oci.encryption.KMSMasterKey(
config=config, master_key_id=master_key_id, vault_id=vault_id
)
kms_master_key_provider = oci.encryption.KMSMasterKeyProvider(
config=config,
kms_master_keys=[kms_master_key]
)
crypto_result = crypto.encrypt(kms_master_key_provider, data_to_encrypt_bytes)
ciphertext = crypto_result.get_data()
print("ciphertext: {}".format(ciphertext))
# decrypt string example
crypto_result = crypto.decrypt(ciphertext, kms_master_key_provider)
print("unencrypted text: {}".format(crypto_result.get_data()))
En el siguiente ejemplo se muestra cómo cifrar un flujo de archivos:
import oci
import shutil
# user supplied vars
vault_id = TEST_VAULT_OCID
master_key_id = TEST_MASTER_KEY_ID
file_to_encrypt = "/file/to/encrypt/message.txt"
output_encrypted_file = "/tmp/message.txt.encrypted"
output_decrypted_file = "/tmp/message.txt.decrypted"
# setup OCI KMS keys
config = oci.config.from_file()
kms_master_key = oci.encryption.KMSMasterKey(
config=config, master_key_id=master_key_id, vault_id=vault_id
)
kms_master_key_provider = oci.encryption.KMSMasterKeyProvider(
config=config,
kms_master_keys=[kms_master_key]
)
# encrypt stream example
with open(output_encrypted_file, 'wb') as output_stream, open(file_to_encrypt, 'rb') as stream_to_encrypt:
with crypto.create_encryption_stream(
kms_master_key_provider,
stream_to_encrypt
) as encryption_stream:
shutil.copyfileobj(encryption_stream, output_stream)
# decrypt stream example
with open(output_decrypted_file, 'wb') as output_stream, open(output_encrypted_file, 'rb') as stream_to_decrypt:
with crypto.create_decryption_stream(
stream_to_decrypt,
kms_master_key_provider
) as decryption_stream:
shutil.copyfileobj(decryption_stream, output_stream)
Contacte con nosotros
Aportaciones
¿Ha obtenido una corrección para un bug o una nueva función que desea aportar? SDK es un código abierto y acepta solicitudes de obtención en GitHub.
Notificaciones
Para recibir una notificación cuando se lance una nueva versión del SDK para Python, suscríbase a la fuente de Atom.
Preguntas o comentarios
- Problemas de GitHub: solo para presentar bugs y solicitudes de funciones
- Desbordamiento de pila: utilice las etiquetas oracle-cloud-infrastructure y oci-python-sdk en su publicación
- Sección de herramientas de desarrollador de los foros de Oracle Cloud
- My Oracle Support