Oracle Cloud Infrastructureドキュメント

開始

このトピックでは、Java用Oracle Cloud Infrastructure SDKのインストールおよび構成方法について説明します。

SDKのダウンロード

Java用のSDKをzipアーカイブとしてGitHubからダウンロードできます。 SDK、そのすべての依存関係、ドキュメント、および例が含まれています。 互換性と問題を回避するために、アーカイブに含まれているバージョンの依存関係を使用してください。 いくつか注目すべき問題は次のとおりです:

  • Bouncy Castle: SDKには1.60がバンドルされていますが、FIPS準拠が必要な場合は、FIPS認定バージョンをダウンロードして使用する必要があります。 SDKは、bc-fips 1.0.1およびbcpkix-fips 1.0.1をサポートしています。 それらをダウンロードすることができます : https://www.bouncycastle.org/fips-java/
  • ジャージ・コアとクライアント: SDKは、オブジェクト・ストレージへの大きなオブジェクトのアップロードをサポートするために必要な2.24.1をバンドルしています。 古いバージョンは〜2.1 GBを超えるアップロードをサポートしません。
  • Jax-RS API: SDKは仕様の2.0.1をバンドルしています。 古いバージョンでは問題が発生します。

ノート

JavaのSDKはジャージでバンドルされていますが、自分のJAX-RS実装を使用することもできます。
詳細は、「独自のJAX-RS実装の使用」を参照してください

SDKの構成

SDKサービスには、2タイプの構成が必要です: 資格証明とクライアント側のHTTP設定。

資格証明の構成

まず、資格証明と構成ファイルを構成する必要があります。 手順については、「SDKおよびCLI構成ファイル」を参照してください。

次に、資格証明を使用するようにクライアントを設定する必要があります。 資格証明は、AuthenticationDetailsProviderインタフェースを介して抽象化されます。 クライアントはこれを実装することができますが、選択します。 このタスク(SimpleAuthenticationDetailsProvider)を手助けする簡単なPOJO/builderクラスが含まれています。

  • プロファイルの有無にかかわらず構成を読み込むことができます:

    ConfigFile config 
        = ConfigFileReader.parse("~/.oci/config");
    ConfigFile configWithProfile 
        = ConfigFileReader.parse("~/.oci/config", "DEFAULT");
  • 秘密キー・サプライヤは、ファイル・パスを直接使用するか、またはconfigファイルを使用して作成できます:

    Supplier<InputStream> privateKeySupplier 
        = new SimplePrivateKeySupplier("~/.oci/oci_api_key.pem");
    Supplier<InputStream> privateKeySupplierFromConfigEntry 
        = new SimplePrivateKeySupplier(config.get("key_file"));
  • ビルダーを使用して認証プロバイダを作成するには:

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId("myTenantId")
            .userId("myUserId")
            .fingerprint("myFingerprint")
            .privateKeySupplier(privateKeySupplier)
            .build();
  • 構成ファイルを使用してビルダーを使用して認証プロバイダを作成するには:

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId(config.get("tenancy"))
            .userId(config.get("user"))
            .fingerprint(config.get("fingerprint"))
            .privateKeySupplier(privateKeySupplier)
            .build();
  • 最後に、標準構成ファイルのキーと標準構成ファイルのロケーションを使用する場合は、ConfigFileAuthenticationDetailsProviderを使用してこれをさらに単純化できます:

    AuthenticationDetailsProvider provider 
        = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");

クライアント側オプションの構成

ClientConfigurationクラスを使用してクライアント側の構成を作成します。 独自の構成を指定しない場合は、Java用のSDKでデフォルトの構成が使用されます。 独自の構成を提供するには、以下を使用します:

ClientConfiguration clientConfig 
    = ClientConfiguration.builder()
        .connectionTimeoutMillis(3000)
        .readTimeoutMillis(60000)
        .build();

資格証明構成とオプションのクライアント構成の両方を取得したら、サービス・インスタンスの作成を開始できます。

カスタム・オプションの構成

構成ファイルでは、定義したカスタム・キーと値のペアを挿入し、必要に応じて参照することができます。 たとえば、頻繁に使用されるコンパートメントIDを次のように構成ファイルに指定できます(赤いイタリックでハイライト表示):

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaat5nvwcna5j6aqzjcmdy5eqbb6qt2jvpkanghtgdaqedqw3rynjq
fingerprint=20:3b:97:13:55:1c:5b:0d:d3:37:d8:50:4e:c5:3a:34
key_file=~/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaaba3pv6wkcr4jqae5f15p2bcmdyt2j6rx32uzr4h25vqstifsfdsq
custom_compartment_id=ocid1.compartment.oc1..aaaaaaaayzfqeibduyox6iib3olcmdar3ugly4fmameq4h7lcdlihrvur7xq

次に、値を次のように取得できます:

ConfigFile config 
    = ConfigFileReader.parse("~/.oci/config");

String compartmentId = config.get("custom_compartment_id");