SDK para Python

El SDK para Python de Oracle Cloud Infrastructure permite escribir código para gestionar recursos de 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 Python Package Index (PyPi).

Documentación de referencia: disponible en docs.cloud.oracle.com.

Consejo

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 de plataforma de Oracle Linux Cloud Developer. Para obtener más información, consulte Oracle Linux Cloud Developer.

Servicios soportados

  • Access Governance
  • Gestión de cuentas
  • Detección de anomalías de IA
  • Idioma de IA
  • Voz de IA
  • Visión de IA
  • Analytics Cloud
  • Anuncios
  • API Gateway
  • Application Dependency Management
  • Gestión de aplicaciones
  • Application Performance Monitoring
  • Auditar
  • 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
  • Compute Instance Agent (agente de Oracle Cloud)
  • Motor de Kubernetes
  • Container Instances
  • Content Management
  • Servicios básicos (Networking, Compute, Block Volume)
  • Cloud Guard
  • Migraciones en la nube
  • Grupos de colocación de cluster
  • Hub de conector
  • Panel de control de la consola
  • Data Catalog
  • Data Flow
  • Data Integration
  • Data Labeling
  • Data Safe
  • Data Science
  • Transferencia de Datos
  • Database
  • Database Management
  • Database Migration
  • Herramientas de base de datos
  • Delegar control de acceso
  • Señal de demanda
  • DevOps
  • Digital Assistant
  • Medios digitales
  • Recuperación ante desastres
  • DNS
  • Descripción del documento
  • Email Delivery
  • Almacén de Enterprise Manager
  • Events
  • Actualización de conjunto de Exadata
  • File Storage
  • 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
  • Base de datos distribuida globalmente
  • GoldenGate
  • Reglas de gobernanza
  • Health Checks
  • IAM
  • Dominios de identidad
  • Integration Cloud en la nube
  • Java Management
  • Descargas de Java Management Service
  • Gestión de claves (para el servicio de almacén)
  • Gestor de licencias
  • Límites
  • Equilibrador de carga
  • Registro
  • Análisis de registro
  • Búsqueda de registro
  • Ingestión de registro
  • Acceso gestionado
  • Agente de gestión en la nube
  • Panel de control de gestión
  • de 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
  • OS Management
  • Hub de gestión de sistema operativo
  • PostgreSQL
  • Automatización de procesos
  • Publicador
  • Servicio de colas
  • Cuotas
  • Resource Manager
  • Programador 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
  • Flujo
  • Support Management
  • Threat Intelligence
  • Usage
  • Visual Builder
  • Solución de VMWare
  • Vulnerability Scanning
  • Seguridad y Web Application Acceleration
  • Solicitudes de trabajo (recursos informáticos, base de datos)
  • Zero Trust Packet Routing

Soporte de Python

Versiones de Python y sistemas operativos 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 en 3.9
CentOS 8 De 3 en 3.9
Oracle Autonomous Linux 7.9 De 3 en 3.9
Oracle Linux 7.8 De 3 en 3.9
Oracle Linux 7.9 De 3 en 3.9
Oracle Linux 8 De 3.6 en 3.11
Oracle Linux 9 De 3.7 en 3.11
Ubuntu 180.4 De 3.6 en 3.11
Ubuntu 20.0.4 De 3.6 en 3.11
Escritorio de Windows 10 y 11 De 3.6 en 3.11
Windows Server (2012/2016/2019) De 3.6 en 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 no listados, pero no probamos su compatibilidad.

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 de 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