SDK para Python

O Oracle Cloud Infrastructure SDK para Python permite que você crie o código de gerenciamento dos recursos do Oracle Cloud Infrastructure.

Esse SDK e seu respectivo exemplo têm licenciamento duplo sob a Licença Permissiva Universal 1.0 e sob a Licença Apache 2.0; o conteúdo de terceiros é licenciado separadamente, conforme descrito no código.

Download: O SDK para Python está disponível no GitHub ou no Python Package Index (PyPi).

Documentação de referência: disponível em docs.cloud.oracle.com.

Dica

Cloud Shell: O SDK para Python é pré-configurado com suas credenciais e está pronto para uso imediato no Cloud Shell. Para obter mais informações sobre como usar o SDK para Python no Cloud Shell, consulte Início Rápido do SDK para Python Cloud Shell.

Imagem do Oracle Linux Cloud Developer: O SDK para Python é pré-instalado na imagem da plataforma Oracle Linux Cloud Developer. Para obter mais informações, consulte Oracle Linux Cloud Developer.

Serviços Suportados

  • Governança de Acesso
  • Gerenciamento de Contas
  • Detecção de Anomalia de Inteligência Artificial
  • Language - IA
  • Speech - IA
  • Visão da Inteligência Artificial
  • Serviço Analytics Cloud
  • Serviço Announcements
  • API Gateway
  • Serviço Application Dependency Management
  • Gerenciamento de Aplicativos
  • Application Performance Monitoring
  • Serviço Audit
  • Autonomous Recovery
  • Dimensionamento automático ( Computação)
  • Bastion
  • Big Data Service
  • Blockchain Platform
  • Serviço Budgets
  • Build
  • Cache com Redis
  • Certificates
  • Cloud Bridge
  • Cloud Migrations
  • Compute Cloud@Customer
  • Compute Instance Agent (Agente Oracle Cloud)
  • Serviço Container Engine for Kubernetes
  • Container Instances
  • Content Management
  • Serviços Básicos (Networking, Compute e Block Volume)
  • Cloud Guard
  • Cloud Migrations
  • Grupos de Localização de Clusters
  • Hub Conector
  • Console Dashboard
  • Data Catalog
  • Data Flow
  • Data Integration
  • Data Labeling
  • Data Safe
  • Data Science
  • Serviço Data Transfer
  • Serviço Database
  • Administração de Banco de Dados
  • Database Migration
  • Database Tools
  • DevOps
  • Serviço Digital Assistant
  • Digital Media
  • Disaster Recovery
  • Serviço DNS
  • Document Understanding
  • Serviço Email Delivery
  • Enterprise Manager Warehouse
  • Serviço Events
  • Atualização de Frota do Exadata
  • Serviço File Storage
  • Serviço Functions
  • Fusion Apps as a Service
  • IA Generativa
  • Inferência de IA generativa
  • Generic Artifacts
  • Banco de Dados Globalmente Distribuído
  • GoldenGate
  • Governance Rules
  • Serviço Health Checks
  • Serviço IAM
  • Identity Domains
  • Integration Cloud
  • Java Management
  • Downloads do Java Management Service
  • Gerenciamento de Chaves (para o serviço Vault)
  • License Manager
  • Limites
  • Load Balancer
  • Log
  • Análise de Registro em Log
  • Pesquisa de Registro em Log
  • Ingestão de Registro em Log
  • Managed Access
  • Nuvem do Agente de Gerenciamento
  • Painel de Controle de Gerenciamento
  • Marketplace
  • Serviço Monitoring
  • MySQL Onda Calor
  • Network Firewall
  • Network Load Balancing
  • Network Monitoring
  • Networking Topology
  • NoSQL Database Cloud
  • Serviço Notifications
  • Serviço Object Storage
  • Centro de Controle do OCI
  • Registro do OCI
  • OneSubscription
  • Operations Insights
  • Operator Access Control
  • Otimizador
  • Organizações
  • OS Management
  • Hub do Serviço OS Management
  • PostgreSQL
  • Process Automation
  • Editor
  • Queue Service
  • Cotas
  • Serviço Resource Manager
  • Roving Edge Infrastructure
  • Serviço Search
  • Gerenciamento de Segredos (para o serviço Vault)
  • Desktops Seguros
  • Service Catalog
  • Service Mesh
  • Source Code Management
  • Serviço Stack Monitoring
  • Serviço Streaming
  • Gerenciamento de Suporte
  • Threat Intelligence
  • Uso
  • Visual Builder
  • Solução VMWare
  • Vulnerability Scanning
  • Segurança e Aceleração do Aplicativo Web
  • Solicitações de Serviço (serviços Compute, Database)

Suporte a Python

Versões do Python e Sistemas Operacionais Suportados

Esta tabela lista as versões do Python suportadas pelo OCI SDK para Python para cada sistema operacional:

Sistema operacional Versões Suportadas do Python para CLI
CentOS 7 3.6 a 3.9
CentOS 8 3.6 a 3.9
Oracle Autonomous Linux 7.9 3.6 a 3.9
Oracle Linux 7.8. 3.6 a 3.9
Oracle Linux 7.9 3.6 a 3.9
Oracle Linux 8 3.6 a 3.11
Oracle Linux 9 3.7 a 3.11
Ubuntu 18.0.4 3.6 a 3.11
Ubuntu 20.0.4 3.6 a 3.11
Windows Desktop 10 e 11 3.6 a 3.11
Windows Server (2012/2016/2019) 3.6 a 3.11

As versões mais recentes do Python podem não ser imediatamente suportadas. O OCI SDK para Python pode funcionar em sistemas operacionais não listados, mas não os testamos quanto à compatibilidade.

Instalando com o yum

Se você estiver usando o Oracle Linux 7 ou 8, poderá usar o yum para instalar o OCI SDK para Python.

O exemplo a seguir mostra como usar o yum para instalar o OCI SDK para Python 3.6:

sudo yum install python36-oci-sdk

Este exemplo mostra como usar o yum para instalar o OCI SDK para Python 2.7:

sudo yum install python-oci-sdk

Criptografia do Cliente

A Criptografia do Cliente permite criptografar dados no cliente antes de armazená-los localmente ou usá-los com outros serviços do Oracle Cloud Infrastructure.

Para usar a criptografia do cliente, é necessário criar uma chave de criptografia mestra (MEK) usando o Serviço Key Management. Isso pode ser feito usando as operações CreateKey ou ImportKey.

A MEK é usada para gerar uma Chave de Criptografia de Dados (DEK) para criptografar cada payload. Uma cópia criptografada dessa DEK (criptografada na MEK) e outras partes de metadados são incluídas no payload criptografado retornado pelos SDKs para que possam ser usadas para decriptografia.

Exemplos

O exemplo de código a seguir mostra como criptografar uma string:



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

O exemplo a seguir mostra como criptografar um stream de arquivos:

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)

Fale Conosco

Contribuições

Tem uma correção de bug ou uma funcionalidade que gostaria de divulgar? O SDK tem código-fonte aberto e aceita solicitações de extração no GitHub.

Notificações

Para ser notificado quando uma nova versão do SDK para Python for liberada, inscreva-se no Feed Atom.

Perguntas ou Feedback