SDK for Python
Oracle Cloud Infrastructure SDK for Pythonを使用して、Oracle Cloud Infrastructureのリソースを管理するためのコードを記述できます。
このSDKおよびサンプルは、Universal Permissive License 1.0およびApache License 2.0でデュアルライセンスされています。サードパーティ・コンテンツはコード内の記述に従って別途ライセンスされます。
ダウンロード: SDK for Pythonは、GitHubまたはPython Package Index (PyPi)で入手できます。
リファレンス・ドキュメント: docs.cloud.oracle.comで入手できます。
クラウド・シェル: SDK for Pythonは、ユーザーの資格証明で事前に構成されており、クラウド・シェル内からすぐに使用できます。クラウド・シェル内からのSDK for Pythonの使用の詳細は、SDK for Pythonのクラウド・シェル・クイック・スタートを参照してください。
Oracle Linux Cloud Developerイメージ: SDK for Pythonは、Oracle Linux Cloud Developerプラットフォーム・イメージに事前にインストールされています。詳細は、「Oracle Linux Cloud Developer」を参照してください。
サポートされるサービス
- アクセス・管理
- アカウント管理
- AI異常検出
- AI言語
- AI音声
- AIビジョン
- Analytics Cloud
- お知らせ
- APIゲートウェイ
- アプリケーション依存性管理
- アプリケーション管理
- アプリケーション・パフォーマンス・モニタリング
- 監査
- 自律型リカバリ
- 自動スケーリング(コンピュート)
- 要塞
- ビッグ・データ・サービス
- Blockchain Platform
- 予算
- 構築
- OCIキャッシュ
- 証明書
- クラウド・ブリッジ
- クラウド移行
- Compute Cloud@Customer
- コンピュート・インスタンス・エージェント(Oracle Cloud Agent)
- Kubernetesエンジン
- コンテナ・インスタンス
- コンテンツ管理
- コア・サービス(ネットワーキング、コンピュート、ブロック・ボリューム)
- クラウド・ガード
- クラウド移行
- クラスタ配置グループ
- コネクタ・ハブ
- コンソール・ダッシュボード
- データ・カタログ
- データ・フロー
- Data Integration
- データ・ラベリング
- データ・セーフ
- Data Science
- Data Transfer
- データベース
- データベース管理
- データベース移行
- データベース・ツール
- 委任アクセス制御
- 需要シグナル
- DevOps
- Digital Assistant
- デジタル・メディア
- ディザスタ・リカバリ
- DNS
- ドキュメント理解
- 電子メール配信
- Enterprise Managerウェアハウス
- イベント
- Exadataフリート更新
- ファイル・ストレージ
- フリート・アプリケーション管理
- ファンクション
- Fusion Apps as a Service
- 生成AI
- 生成AIエージェント
- 生成AI推論
- 汎用アーティファクト
- 世界中に分散しているデータベース
- GoldenGate
- ガバナンス・ルール
- ヘルス・チェック
- IAM
- アイデンティティ・ドメイン
- Integration Cloud
- Java管理
- Java Management Serviceのダウンロード
- キー管理(ボールト・サービス用)
- ライセンス・マネージャ
- 制限
- ロード・バランサ
- ロギング
- ログ・アナリティクス
- ロギング検索
- ロギング収集
- 管理対象アクセス
- 管理エージェント・クラウド
- 管理ダッシュボード
- Marketplace
- Marketplaceプライベートオファー
- モニタリング
- HeatWave
- ネットワーク・ファイアウォール
- ネットワーク・ロード・バランシング
- ネットワーク・モニタリング
- ネットワーク・トポロジ
- NoSQL Database Cloud
- 通知
- オブジェクト・ストレージ
- OCI Control Center
- OCIレジストリ
- OCIセキュア・デスクトップ
- OneSubscription
- オペレーション・インサイト
- オペレータ・アクセス・コントロール
- オプティマイザ
- 組織
- OS管理
- OS管理ハブ
- PostgreSQL
- プロセス自動化
- Publisher
- キュー・サービス
- 割当て
- リソース・マネージャ
- リソース
- Roving Edge Infrastructure
- 検索
- シークレット管理(ボールト・サービス用)
- セキュア・デスクトップ
- セキュリティ属性
- サービス・カタログ
- サービス・メッシュ
- ソース・コード管理
- スタック・モニタリング
- ストリーミング
- サポート管理
- 脅威インテリジェンス
- 使用状況
- Visual Builder
- VMWareソリューション
- 脆弱性スキャン
- Webアプリケーション・アクセラレーションおよびセキュリティ
- 作業リクエスト(コンピュート、データベース)
- Zero Trust Packet Routing
Pythonのサポート
サポートされるPythonバージョンおよびオペレーティング・システム
次の表に、各オペレーティング・システムについてOCI SDK for PythonでサポートされているPythonのバージョンを示します:
オペレーティング・システム | CLIでサポートされる Pythonバージョン |
---|---|
CentOS 7 | 3.6 宛先3.9 |
CentOS 8 | 3.6 宛先3.9 |
Oracle Autonomous Linux 7.9 | 3.6 宛先3.9 |
Oracle Linux 7.8 | 3.6 宛先3.9 |
Oracle Linux 7.9 | 3.6 宛先3.9 |
Oracle Linux 8 | 3.6 to 3.11 |
Oracle Linux 9 | 3.7 宛先3.11 |
Ubuntu 18.0.4 | 3.6 to 3.11 |
Ubuntu 20.0.4 | 3.6 to 3.11 |
Windowsデスクトップ10 & 11 | 3.6 to 3.11 |
Windows Server (2012/2016/2019) | 3.6 to 3.11 |
新しいバージョンのPythonは、すぐにサポートされない場合があります。OCI SDK for Pythonは、記載されていないオペレーティング・システムで動作する可能性がありますが、互換性のテストはしていません。
リソース・マネージャを使用したインストール
リソース・マネージャを使用して、コンパートメントのコンピュート・インスタンスにOracle Cloud Development Kitをインストールできます。Oracle Cloud Development Kitには、SDK for Pythonとその他のOracle開発ツールが含まれます。
yumを使用したインストール
Oracle Linux 7または8を使用している場合は、yumを使用してOCI SDK for Pythonをインストールできます。
次に、yumを使用してOCI SDK for Python 3.6をインストールする例を示します:
sudo yum install python36-oci-sdk
次に、yumを使用してOCI SDK for Python 2.7をインストールする例を示します:
sudo yum install python-oci-sdk
クライアント側の暗号化
クライアント側の暗号化では、クライアント側のデータを、ローカルに格納する前、または他のOracle Cloud Infrastructureサービスでデータを使用する前に暗号化できます。
クライアント側の暗号化を使用するには、キー管理サービスを使用してマスター暗号化キー(MEK)を作成する必要があります。これは、CreateKeyまたはImportKey操作を使用して行います。
MEKは、各ペイロードを暗号化するデータ暗号化キー(DEK)の生成に使用されます。このDEKの暗号化されたコピー(MEKで暗号化済)およびその他のメタデータの断片は、復号化に使用できるように、SDKによって返される暗号化されたペイロードに含まれます。
例
次のコード例は、文字列の暗号化方法を示しています:
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()))
次の例は、ファイル・ストリームの暗号化方法を示しています:
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)
連絡方法
コントリビューション
コントリビュートするバグの修正または新しい機能がありますか。SDKはオープン・ソースであり、GitHubでプル・リクエストを受け入れています。
通知
SDK for Pythonの新しいバージョンがリリースされたときに通知を受け取るには、Atomフィードをサブスクライブします。
質問またはフィードバック
- GitHub Issues: バグおよび機能リクエストを報告する場合のみ
- Stack Overflow: oracle-cloud-infrastructureタグとoci-python-sdkタグを使用して投稿します
- Oracle Cloudフォーラムの「開発者ツール」セクション
- My Oracle Support