SDK per Python

Oracle Cloud Infrastructure SDK per Python ti consente di scrivere codice per gestire le risorse Oracle Cloud Infrastructure.

Questo SDK e questo esempio hanno una doppia licenza in base alla Universal Permissive License 1.0 e alla Apache License 2.0; i contenuti di terze parti sono concessi in licenza separatamente come descritto nel codice.

Download: The SDK for Python è disponibile in GitHub o in Python Package Index (PyPi).

Documentazione di riferimento: disponibile su docs.cloud.oracle.com.

Suggerimento

Cloud Shell: l'SDK per Python è preconfigurato con le credenziali e pronto per l'uso immediatamente dall'interno di Cloud Shell. Per ulteriori informazioni sull'uso di SDK per Python dall'interno di Cloud Shell, vedere SDK per l'avvio rapido di Python Cloud Shell.

Immagine per sviluppatori cloud Oracle Linux: l'SDK per Python è preinstallato nell'immagine della piattaforma Oracle Linux Cloud Developer. Per ulteriori informazioni, vedere Oracle Linux Cloud Developer.

Servizi supportati

  • Access Governance
  • Gestione account
  • Lingua AI
  • Discorso AI
  • Visione AI
  • Analytics Cloud
  • Annunci
  • Gateway API
  • Application Dependency Management
  • Gestione applicazioni
  • Application Performance Monitoring
  • Esegui audit
  • Recupero autonomo
  • Ridimensionamento automatico (computazione)
  • Bastion
  • Servizio Big Data
  • Piattaforma Blockchain
  • Budget
  • Crea
  • Cache OCI
  • Certificati
  • Bridge cloud
  • Migrazioni cloud
  • Compute Cloud@Customer
  • Agente istanza di computazione (agente Oracle Cloud)
  • Motore Kubernetes
  • Istanze contenitore
  • Gestione dei contenuti
  • Servizi di base (Networking, Compute, Volume a blocchi)
  • Cloud Guard
  • Migrazioni cloud
  • Gruppi di posizionamento cluster
  • Hub connettore
  • Dashboard della console
  • Catalogo dati
  • Flusso di dati
  • Integrazione dei dati
  • Etichettatura dati
  • Data Safe
  • Data science
  • Database
  • Gestione del ciclo di vita del database
  • Gestione database
  • Migrazione del database
  • Strumenti del database
  • Controllo dell'accesso delegato
  • Segnale domanda
  • Settore DevOps
  • Digital Assistant
  • Digital Media
  • Disaster Recovery
  • DNS
  • Document Understanding
  • Consegna tramite e-mail
  • Enterprise Manager Warehouse
  • Eventi
  • Aggiornamento della flotta Exadata
  • Storage di file
  • Storage di file con Lustre
  • Gestione delle applicazioni della flotta
  • Funzioni
  • Fusion Apps as a Service
  • AI generativa
  • Agente AI generativa
  • Inferenza AI generativa
  • Artifact generici
  • Globally Distributed Database
  • GoldenGate
  • Regole di governance
  • Controlli stato
  • IAM
  • Domini di Identity
  • Integration Cloud
  • Gestione Java
  • Download di Java Management Service
  • Gestione delle chiavi (per il servizio Vault)
  • Gestore licenza
  • Limiti
  • Load balancer
  • Registrazione
  • Logging Analytics
  • Ricerca di log
  • Registrazione dell'inclusione
  • Accesso gestito
  • Servizi gestiti per Mac
  • Management Agent nel cloud
  • Dashboard di gestione
  • Marketplace
  • Offerta privata Marketplace
  • Monitoraggio
  • HeatWave
  • Firewall di rete
  • Bilanciamento del carico di rete
  • Monitoraggio della rete
  • Topologia di networking
  • NoSQL Database Cloud
  • Notifiche
  • Storage degli oggetti
  • OCI Control Center
  • Registro OCI
  • Desktop sicuri OCI
  • OneSubscription
  • Operations Insights
  • Controllo accesso operatore
  • Ottimizzatore
  • Organizzazioni
  • Gestione sistema operativo
  • Hub di gestione del sistema operativo
  • PostgreSQL
  • Automazione dei processi
  • Publisher
  • Servizio coda
  • Quote
  • Resource Manager
  • Strumento di pianificazione delle risorse
  • Infrastruttura Roving Edge
  • Cerca
  • Gestione dei segreti (per il servizio Vault)
  • Desktop sicuri
  • Attributo di sicurezza
  • Catalogo servizi
  • Mesh di servizio
  • Gestione codice sorgente
  • Monitoraggio dello stack
  • Streaming
  • Gestione del supporto
  • Intelligence sulle minacce
  • Uso
  • Visual Builder
  • VMWare Soluzione
  • Analisi delle vulnerabilità
  • Accelerazione e sicurezza delle applicazioni Web
  • Gestione WebLogic
  • Richieste di lavoro (Computazione, Database)
  • Zero Trust Packet Routing

Supporto Python

Versioni e sistemi operativi Python supportati

Questa tabella elenca le versioni di Python supportate dall'SDK OCI per Python per ogni sistema operativo:

Sistema operativo Versioni Python supportate per CLI
CentOS 7 dal 3.6 al 3.9
CentOS 8 dal 3.6 al 3.9
Oracle Autonomous Linux 7,9 dal 3.6 al 3.9
Oracle Linux 7.8 dal 3.6 al 3.9
Oracle Linux 7.9 dal 3.6 al 3.9
Oracle Linux 8 dal 3.6 al 3.11
Oracle Linux 9 dal 3.7 al 3.11
Ubuntu 18.0.4 dal 3.6 al 3.11
Ubuntu 20.0.4 dal 3.6 al 3.11
Desktop Windows 10 e 11 dal 3.6 al 3.11
Windows Server (2012/2016/2019) dal 3.6 al 3.11

Le versioni più recenti di Python potrebbero non essere immediatamente supportate. L'SDK OCI per Python potrebbe funzionare su sistemi operativi non elencati, ma non li testiamo per la compatibilità.

Installazione con yum

Se stai utilizzando Oracle Linux 7 o 8, puoi utilizzare yum per installare l'SDK OCI per Python.

L'esempio seguente mostra come utilizzare yum per installare l'SDK OCI per Python 3.6:

sudo yum install python36-oci-sdk

Questo esempio mostra come utilizzare yum per installare l'SDK OCI per Python 2.7:

sudo yum install python-oci-sdk

Cifratura lato client

Client Side Encryption consente di cifrare i dati sul lato client prima di memorizzarli localmente o utilizzarli con altri servizi Oracle Cloud Infrastructure.

Per utilizzare la cifratura lato client, è necessario creare una chiave di cifratura master (MEK) mediante il servizio Key Management. Questa operazione può essere eseguita utilizzando le operazioni CreateKey o ImportKey.

MEK viene utilizzato per generare una chiave di cifratura dati (DEK, Data Encryption Key) per cifrare ogni payload. Una copia crittografata di questo DEK (crittografato sotto il MEK) e altri pezzi di metadati sono inclusi nel payload cifrato restituito dagli SDK in modo che possano essere utilizzati per la decifrazione.

Esempi

L'esempio di codice riportato di seguito mostra come cifrare una stringa.



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()))

L'esempio seguente mostra come cifrare un flusso di file.

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)

Contattateci

Contributi

Hai trovato una soluzione per un bug o una nuova funzionalità a cui vorresti contribuire? L'SDK è open source e accetta le richieste Pull su GitHub.

Notifiche

Per ricevere una notifica quando viene rilasciata una nuova versione dell'SDK per Python, iscriviti al feed Atom.

Domande o feedback