

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for PHP バージョン 3 のクライアントコンストラクタオプション
<a name="guide_configuration"></a>

クライアントコンストラクタは、クライアントコンストラクタまたは [https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html](https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html) クラスで指定できます。特定のタイプのクライアントに指定されるオプションの配列は、作成するクライアントによって異なります。これらのカスタムクライアント設定オプションについては、各クライアントの [API ドキュメント](https://docs.aws.amazon.com/aws-sdk-php/latest/)で説明されています。

クライアントに必要なクライアントコンストラクタオプションを明示的に指定しない場合、SDK for PHP は環境変数または AWS 設定ファイルから値を検索します。すべてのクライアントには認証情報プロバイダーの値と AWS リージョン 値が必要なため、これらの値をコンストラクタオプションまたは外部として設定する必要があります。

デフォルトでは、チェックされる設定ファイルは、ホームディレクトリの `.aws/config`で、通常、`~/.aws/config` です。ただし、環境変数 `AWS_CONFIG_FILE` を使用して、デフォルトの設定ファイルの場所を設定できます。例えば、これは `open_basedir` などで特定のディレクトリへのファイルアクセスを制限する場合に便利です。

共有 AWS `credentials` ファイル`config`と ファイルの場所とフォーマットの詳細については、「 SDK とツールのリファレンスガイド」の[「設定](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html)」を参照してください。 *AWS SDKs *

 AWS 構成ファイルまたは環境変数として設定できるすべてのグローバル構成設定について詳しくは、*AWS SDK およびツールリファレンスガイド*の「[構成と認証設定のリファレンス](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)」を参照してください。

**Topics**
+ [api\$1provider](#api-provider)
+ [認証情報](#config_credentials)
+ [デバッグ](#debug)
+ [stats](#config-stats)
+ [エンドポイント](#endpoint)
+ [endpoint\$1provider](#endpoint-provider)
+ [endpoint\$1discovery](#endpoint-discovery)
+ [handler](#handler)
+ [http](#config-http)
+ [http\$1handler](#http-handler)
+ [profile](#profile)
+ [リージョン](#cfg-region)
+ [retries](#config-retries)
+ [scheme](#scheme)
+ [サービス](#service)
+ [signature\$1provider](#signature-provider)
+ [signature\$1version](#signature-version)
+ [ua\$1append](#ua-append)
+ [use\$1aws\$1shared\$1config\$1files](#use-aws-shared-config-files)
+ [validate](#validate)
+ [バージョン](#cfg-version)

以下の例では、Amazon S3 のクライアントコンストラクタにオプションを渡す方法を示しています。

```
use Aws\S3\S3Client;

$options = [
    'region'            => 'us-west-2',
    'version'           => '2006-03-01',
    'signature_version' => 'v4'
];

$s3Client = new S3Client($options);
```

クライアントの作成の詳細については、「[基本的なサービスクライアントの作成](making-service-requests.md#creating-a-client)」を参照してください。

## api\$1provider
<a name="api-provider"></a>

タイプ  
 `callable` 

タイプ、サービス、およびバージョン引数を受け入れて、対応する設定データの配列を返す、PHP の呼び出し可能関数。タイプの値は `api`、`waiter`、`paginator` のいずれかです。

デフォルトでは、SDK は、SDK の `Aws\Api\FileSystemApiProvider` フォルダから API ファイルをロードする `src/data` のインスタンスを使用します。

## 認証情報
<a name="config_credentials"></a>

タイプ  
 `array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable` 

特定の認証情報インスタンスを使用するための `Aws\Credentials\CredentialsInterface` オブジェクトを渡します。以下では、IAM Identity Center 認証情報プロバイダを使用することを指定しています。このプロバイダは SSO 認証情報プロバイダとも呼ばれます。

```
$credentials = Aws\Credentials\CredentialProvider::sso('profile default');

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $credentials
]);
```

名前付きプロファイルを使用する場合は、前の例の「`default`」をプロファイル名に置き換えてください。名前付きプロファイルの設定について詳しくは、*AWS SDK およびツールリファレンスガイド*の「[共有 `config` と `credentials` ファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)」を参照してください。

使用する認証情報プロバイダを指定せず、認証情報プロバイダチェーンに依存している場合、認証失敗によるエラーメッセージは通常一般的なものです。有効な認証情報を確認しているソースのリストの最後のプロバイダから生成されますが、そのプロバイダは使用しようとしているプロバイダではない可能性があります。どの認証情報プロバイダを使用するかを指定すると、表示されるエラーメッセージはそのプロバイダのみから出力されるため、より有用で関連性の高いものになります。認証情報をチェックするソースチェーンの詳細については、*AWS SDK およびツールリファレンスガイド*の「[認証情報プロバイダチェーン](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)」を参照してください。

Null 認証情報を使用し、リクエストに署名しないように、`false` を渡します。

```
$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => false
]);
```

関数を使用して認証情報を作成するために、呼び出し可能な[認証情報プロバイダ](guide_credentials.md#cred-provider-defn-php)関数を渡します。

```
use Aws\Credentials\CredentialProvider;

// Only load credentials from environment variables
$provider = CredentialProvider::env();

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $provider
]);
```

複数のプロセスにわたってデフォルトプロバイダーチェーンで返される値をキャッシュするために、`Aws\CacheInterface` のインスタンスにキャッシュされた認証情報を渡します。

```
use Aws\Credentials\CredentialProvider;
use Aws\PsrCacheAdapter;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;


$cache = new PsrCacheAdapter(new FilesystemAdapter);
$provider = CredentialProvider::defaultProvider();
$cachedProvider = CredentialProvider::cache($provider, $cache);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-west-2',
    'credentials' => $cachedProvider
]);
```

クライアントへの認証情報の提供の詳細については、 [AWS SDK for PHP バージョン 3 の認証情報](guide_credentials.md)ガイドを参照してください。

**注記**  
認証情報のロードおよび検証は、それが使用されるときまで遅延されます。

## デバッグ
<a name="debug"></a>

タイプ  
 `bool|array` 

各転送に関するデバッグ情報を出力します。デバッグ情報には、トランザクションが準備されネットワーク経由で送信されるときの、トランザクションの状態の変更に関する情報が含まれています。また、デバッグ出力には、クライアントで使用される特定の HTTP ハンドラー (例: cURL のデバッグ出力) に関する情報も含まれています。

`true` に設定すると、リクエストの送信時にデバッグ情報が表示されます。

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => true
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

または、以下のキーを持つ連想配列を指定できます。

**logfn (callable)**  
ログメッセージで呼び出される関数。デフォルトでは、PHP の `echo` 関数が使用されます。

**stream\$1size (int)**  
ストリームのサイズがこの数より大きい場合、ストリームデータは記録されません。`0` に設定すると、ストリームデータは一切記録されません。

**scrub\$1auth (bool)**  
`false` に設定すると、ログに記録されたメッセージからの認証データのスクラブが無効になります (つまり、 AWS アクセスキー ID と署名が に渡されます`logfn`)。

**http (bool)**  
`false` に設定すると、低レベルの HTTP ハンドラー (例: cURL の詳細出力) の「debug」機能が無効になります。

**auth\$1headers (array)**  
置き換え先の値にマッピングされている、置き換えるヘッダーの、キーと値のマッピングに設定します。`scrub_auth` が `true` に設定されていない場合、これらの値は使用されません。

**auth\$1strings (array)**  
置き換え先にマッピングするための正規表現の、キーと値のマッピングに設定します。`scrub_auth` が `true` に設定されている場合に、これらの値は認証データスクラバーで使用されます。

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => [
        'logfn'        => function ($msg) { echo $msg . "\n"; },
        'stream_size'  => 0,
        'scrub_auth'   => true,
        'http'         => true,
        'auth_headers' => [
            'X-My-Secret-Header' => '[REDACTED]',
        ],
        'auth_strings' => [
            '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]',
        ],
    ]
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

**注記**  
このオプションは、`http` デバッグオプションによって生成された基礎となる HTTP ハンドラー情報も出力します。デバッグ出力は、 AWS SDK for PHPでの問題を診断する場合に非常に役立ちます。SDK に関する問題をオープンする場合は、分離した障害ケースのデバッグ出力を提供してください。

## stats
<a name="config-stats"></a>

タイプ  
 `bool|array` 

転送の統計情報を、SDK オペレーションによって返されるエラーと結果にバインドします。

`true` に設定すると、送信されたリクエストに関する統計情報が収集されます。

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => true
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the stats
$stats = $result['@metadata']['transferStats'];
```

または、以下のキーを持つ連想配列を指定できます。

**retries (bool)**  
`false` に設定すると、実行された再試行に関するレポートが無効になります。デフォルトでは、再試行の統計情報が収集されて、返されます。

**http (bool)**  
`true` に設定すると、低レベルの HTTP アダプタからの統計情報 (例: GuzzleHttpTransferStats で返される値) の収集が有効になります。このオプションの効果が生じるには、HTTP ハンドラーで \$1\$1on\$1transfer\$1stats オプションがサポートされている必要があります。HTTP 統計情報は連想配列のインデックス付き配列として返されます。それぞれの連想配列には、1 つのリクエストに対して、クライアントの HTTP ハンドラーによって返される転送統計情報が含まれています。デフォルトでは無効になっています。  
リクエストが再試行された場合、各リクエストの転送統計情報が返され、最初のリクエストの統計情報が `$result['@metadata']['transferStats']['http'][0]` に、2 回目のリクエストの統計情報が `$result['@metadata']['transferStats']['http'][1]` に入っています (以下同様)。

**timer (bool)**  
`true` に設定すると、1 つのオペレーションの合計所要時間 (秒単位) をレポートするコマンドタイマーが有効になります。デフォルトでは無効になっています。

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => [
        'retries'      => true,
        'timer'        => false,
        'http'         => true,
    ]
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the HTTP transfer stats
$stats = $result['@metadata']['transferStats']['http'];
// Inspect the number of retries attempted
$stats = $result['@metadata']['transferStats']['retries_attempted'];
// Inspect the total backoff delay inserted between retries
$stats = $result['@metadata']['transferStats']['total_retry_delay'];
```

## エンドポイント
<a name="endpoint"></a>

タイプ  
 `string` 

ウェブサービスの完全な URI。これは、アカウント固有のエンドポイントを使用する [AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/) などのサービスに必須です。これらのサービスについては、`describeEndpoints` メソッドを使用してこのエンドポイントをリクエストしてください。

これは、カスタムエンドポイント (例: Amazon S3 または [Amazon DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) のローカルバージョン) に接続する場合にのみ必要です。

Amazon DynamoDB ローカルへの接続の例を次に示します。

```
$client = new Aws\DynamoDb\DynamoDbClient([
    'version'  => '2012-08-10',
    'region'   => 'us-east-1',
    'endpoint' => 'http://localhost:8000'
]);
```

使用可能な[AWS リージョンとエンドポイントのリストについては、](https://docs.aws.amazon.com/general/latest/gr/rande.html) AWS 「リージョンとエンドポイント」を参照してください。

## endpoint\$1provider
<a name="endpoint-provider"></a>

タイプ  
 `Aws\EndpointV2\EndpointProviderV2|callable` 

「service」および「region」キーを含むオプションのハッシュを受け入れる、省略可能な EndpointProviderV2 or PHP のインスタンスの呼び出し可能関数です。`NULL` またはエンドポイントデータのハッシュ (「エンドポイント」キーが必要) を返します。

最小限のエンドポイントプロバイダーを作成する方法の例を次に示します。

```
$provider = function (array $params) {
    if ($params['service'] == 'foo') {
        return ['endpoint' => $params['region'] . '.example.com'];
    }
    // Return null when the provider cannot handle the parameters
    return null;
});
```

## endpoint\$1discovery
<a name="endpoint-discovery"></a>

タイプ  
 `array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable` 

エンドポイント検出では、エンドポイント検出をサポートするサービス API に対する正しいエンドポイントを識別して接続します。エンドポイント検出をサポートするが、これを必要としないサービスの場合、クライアントの作成中に `endpoint_discovery` を有効にします。サービスがエンドポイント検出をサポートしていない場合、この設定は無視されます。

 `Aws\EndpointDiscovery\ConfigurationInterface` 

サービスが指定するオペレーションのサービス API の適切なエンドポイントへの自動接続を可能にするオプションの設定プロバイダー。

`Aws\EndpointDiscovery\Configuration` オブジェクトでは 2 つのオプションを使用できます。1 つはエンドポイント検出が有効な場合にそれを示すブール値「enabled」で、もう 1 つはエンドポイントキャッシュのキーの最大数を示す整数「cache\$1limit」です。

作成されるクライアントごとに、エンドポイント検出の特定の設定を使用するために `Aws\EndpointDiscovery\Configuration` オブジェクトを渡します。

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\EndpointDiscovery\Configuration (
    $enabled,
    $cache_limit
);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'endpoint_discovery' => $config,

]);
```

複数のプロセスにわたってエンドポイント検出で返される値をキャッシュするために、`Aws\CacheInterface` のインスタンスを渡します。

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

エンドポイント検出に配列を渡します。

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => [
        'enabled' => true,
        'cache_limit' => 1000
    ],
]);
```

## handler
<a name="handler"></a>

タイプ  
 `callable` 

コマンドオブジェクトとリクエストオブジェクトを受け入れて、`GuzzleHttp\Promise\PromiseInterface` オブジェクトで満たすかまたは `Aws\ResultInterface` で拒否する promise (`Aws\Exception\AwsException`) を返すハンドラーです。ハンドラーはターミナルであり、コマンドを満たすことになっているため、ハンドラーは next ハンドラーを受け入れません。ハンドラーが指定されていない場合は、デフォルトの Guzzle ハンドラーが使用されます。

`Aws\MockHandler` を使用して、模擬結果を返すか、または Mock 例外をスローできます。結果または例外をキューに追加すると、MockHandler は FIFO ルールに従ってそれをキューから削除します。

```
use Aws\Result;
use Aws\MockHandler;
use Aws\DynamoDb\DynamoDbClient;
use Aws\CommandInterface;
use Psr\Http\Message\RequestInterface;
use Aws\Exception\AwsException;

$mock = new MockHandler();

// Return a mocked result
$mock->append(new Result(['foo' => 'bar']));

// You can provide a function to invoke; here we throw a mock exception
$mock->append(function (CommandInterface $cmd, RequestInterface $req) {
    return new AwsException('Mock exception', $cmd);
});

// Create a client with the mock handler
$client = new DynamoDbClient([
    'region' => 'us-east-1',
    'handler' => $mock
]);

// Result object response will contain ['foo' => 'bar']
$result = $client->listTables();

// This will throw the exception that was enqueued
$client->listTables();
```

## http
<a name="config-http"></a>

タイプ  
 `array` 

SDK によって作成される HTTP リクエストと転送に適用する HTTP オプションの配列に設定します。

この SDK では以下の設定オプションがサポートされています。

### cert
<a name="http-cert"></a>

タイプ  
 `string|array` 

PEM 形式のクライアント側の証明書を指定します。
+ 証明書ファイルのみへのパスの文字列として設定します。

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['cert' => '/path/to/cert.pem']
]);
```
+ パスとパスワードを含む配列として設定します。

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => [
        'cert' => ['/path/to/cert.pem', 'password']
    ]
]);
```

### connect\$1timeout
<a name="http-connect-timeout"></a>

サーバーへの接続の試行時に待機する秒数を記述する浮動小数点。`0` に設定すると、無期限に待機します (デフォルト動作)。

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after attempting to connect for 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'connect_timeout' => 5
    ]
]);
```

### デバッグ
<a name="http-debug"></a>

タイプ  
 `bool|resource` 

デバッグ情報を出力するように、基になる HTTP ハンドラーに指示します。HTTP ハンドラーから提供されるデバッグ情報は、HTTP ハンドラーごとに異なります。
+ `true` を渡すと、デバッグ出力は STDOUT に書き込まれます。
+ `resource` で返された `fopen` を渡すと、デバッグ出力は特定の PHP ストリームリソースに書き込まれます。

### decode\$1content
<a name="http-decode-content"></a>

タイプ  
 `bool` 

圧縮されたレスポンスの本文を解凍するように、基になる HTTP ハンドラーに指示します。有効になっていない場合、圧縮されたレスポンス本文は `GuzzleHttp\Psr7\InflateStream` を使用して解凍されます。

**注記**  
SDK のデフォルト HTTP ハンドラーでは、コンテンツのデコードはデフォルトで有効になっています。下位互換性のために、このデフォルトは変更できません。圧縮されたファイルを Amazon S3 に保存する場合は、S3 クライアントレベルでコンテンツのデコードを無効にすることをお勧めします。  

```
use Aws\S3\S3Client;
use GuzzleHttp\Psr7\InflateStream;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['decode_content' => false],
]);

$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'massize_gzipped_file.tgz'
]);

$compressedBody = $result['Body']; // This content is still gzipped
$inflatedBody = new InflateStream($result['Body']); // This is now readable
```

### delay
<a name="http-delay"></a>

タイプ  
 `int` 

リクエストを送信する前の遅延の時間数 (ミリ秒単位)。これは、リクエストを再試行する前に遅延するためによく使用されます。

### expect
<a name="http-expect"></a>

タイプ  
 `bool|string` 

このオプションは、基盤となる HTTP ハンドラーに渡されます。デフォルトでは、リクエストの本文が 1 MB を超えたときに Expect: 100-Continue ヘッダーが設定されます。`true` または `false` により、すべてのリクエストでヘッダーが有効または無効になります。整数を使用する場合、この設定を超える本文を持つリクエストのみが、ヘッダーを使用します。整数として使用した場合、本文のサイズが不明なときは Expect ヘッダーが送信されます。

**警告**  
Expect ヘッダーを無効にすると、サービスは認証エラーやその他のエラーを返すことができなくなる場合があります。このオプションの設定には注意が必要です。

### プログレス
<a name="http-progress"></a>

タイプ  
 `callable` 

転送の進行状況が作成されたときに呼び出す関数を定義します。この関数は以下の次の引数を受け入れます。

1. ダウンロードすることになっている総バイト数。

1. これまでにダウンロード済みのバイト数。

1. アップロードすることになっている総バイト数。

1. これまでにアップロード済みのバイト数。

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2'
]);

// Apply the http option to a specific command using the "@http"
// command parameter
$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'large.mov',
    '@http' => [
        'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
            printf(
                "%s of %s downloaded, %s of %s uploaded.\n",
                $expectedDl,
                $dl,
                $expectedUl,
                $ul
            );
        }
    ]
]);
```

### proxy
<a name="http-proxy"></a>

タイプ  
 `string|array` 

`proxy` オプションを使用して、プロキシを介して AWS サービスに接続できます。
+ すべてのタイプの URI に対するプロキシに接続するための文字列値を指定します。このプロキシ文字列値には、スキーム、ユーザー名、およびパスワードを含めることができます。例えば、`"http://username:password@192.168.16.1:10"`。
+ プロキシ設定の連想配列を指定します。キーは URI のスキームであり、値は指定の URI に対するプロキシです (つまり、「http」と「https」のエンドポイントに対して異なるプロキシを指定できます)。

```
use Aws\DynamoDb\DynamoDbClient;

// Send requests through a single proxy
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => 'http://192.168.16.1:10'
    ]
]);

// Send requests through a different proxy per scheme
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => [
            'http' => 'tcp://192.168.16.1:10',
            'https' => 'tcp://192.168.16.1:11',
        ]
    ]
]);
```

`HTTP_PROXY` 環境変数を使用して「http」プロトコル固有のプロキシを、`HTTPS_PROXY` 環境変数を使用して「https」固有のプロキシをそれぞれ設定できます。

### sink
<a name="http-sink"></a>

タイプ  
 `resource|string|Psr\Http\Message\StreamInterface` 

`sink` オプションは、オペレーションのレスポンスデータのダウンロード先を制御します。
+ `resource` で返される `fopen` を指定すると、レスポンス本文は PHP ストリームにダウンロードされます。
+ ディスク上のファイルのパスを `string` 値として指定すると、レスポンス本文はディスク上の特定のファイルにダウンロードされます。
+ `Psr\Http\Message\StreamInterface` を指定すると、レスポンス本文は特定の PSR ストリームオブジェクトにダウンロードされます。

**注記**  
SDK はデフォルトでは、レスポンス本文を PHP の一時ストリームにダウンロードします。つまり、本文のサイズが 2 MB に達するまでデータはメモリに保持され、2 MB に達した時点でそのデータはディスク上の一時ファイルに書き込まれます。

### synchronous
<a name="http-sync"></a>

タイプ  
 `bool` 

`synchronous` オプションを true に設定すると、結果をブロックする予定であることが、基になる HTTP ハンドラーに通知されます。

### ストリーム
<a name="http-stream"></a>

タイプ  
 `bool` 

`true` に設定すると、ウェブサービスからのレスポンスの本文を、最初にすべてダウンロードするのではなく、ストリーミングする予定であることが、基になる HTTP ハンドラーに通知されます。例えば、Amazon S3 のストリームラッパークラスでは、データが確実にストリーミングされるように、このオプションを使用します。

### タイムアウト
<a name="http-timeout"></a>

タイプ  
 `float` 

リクエストのタイムアウトを秒数で記述する浮動小数点。`0` に設定すると、無期限に待機します (デフォルト動作)。

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'timeout' => 5
    ]
]);
```

### 検証
<a name="http-verify"></a>

タイプ  
 `bool|string` 

`verify``http` オプションを使用して、SDK でのピアの SSL/TLS 証明書検証動作をカスタマイズできます。
+ `true` に設定すると、ピアの SSL/TLS 証明書検証が有効になり、オペレーティングシステムで提供されているデフォルトの CA バンドルが使用されます。
+ `false` に設定すると、ピアの証明書検証が無効になります (これは安全ではありません)。
+ CA 証明書バンドルのパスを指定する文字列に設定すると、カスタム CA バンドルを使用した検証が有効になります。

指定した CA バンドルがシステムに見つからずにエラーを受け取った場合は、SDK に対して CA バンドルのパスを指定します。特定の CA バンドルを使用する必要がない場合は、[ここ](https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt)からダウンロードできる、一般的に使用される CA バンドル (cURL のメンテナンス担当者によって維持されている) が Mozilla によって提供されています。使用可能な CA バンドルをディスク上に準備したら、PHP の .ini 設定 `openssl.cafile` でそのファイルのパスを指すように設定できます。そうすると、`verify` リクエストオプションを省略できます。SSL 証明書の詳細については、[cURL ウェブサイト](http://curl.haxx.se/docs/sslcerts.html)を参照してください。

```
use Aws\DynamoDb\DynamoDbClient;

// Use a custom CA bundle
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => '/path/to/my/cert.pem'
    ]
]);

// Disable SSL/TLS verification
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => false
    ]
]);
```

## http\$1handler
<a name="http-handler"></a>

タイプ  
 `callable` 

`http_handler` オプションは、SDK を他の HTTP クライアントと統合するために使用されます。`http_handler` オプションは、`Psr\Http\Message\RequestInterface` オブジェクトと、コマンドに適用する `http` オプションの配列を受け入れて、`GuzzleHttp\Promise\PromiseInterface` オブジェクトで満たすかまたは以下の例外データで拒否する `Psr\Http\Message\ResponseInterface` オブジェクトを返す関数です。
+  `exception` - (`\Exception`) 発生した例外。
+  `response` - (`Psr\Http\Message\ResponseInterface`) 受信したレスポンス (存在する場合)。
+  `connection_error` - (bool) `true` に設定すると、そのエラーが接続エラーとしてマークされます。また、この値を `true` 設定すると、SDK が必要に応じてオペレーションを自動的に再試行できるようになります。

SDK は、指定された `http_handler` を `handler` オブジェクトでラップすることによって、指定された `http_handler` を通常の `Aws\WrappedHttpHandler` オプションに自動的に変換します。

デフォルトでは、SDK は Guzzle を HTTP ハンドラーとして使用します。ここで別の HTTP ハンドラーを指定するか、Guzzle クライアントに独自のカスタム定義オプションを提供することができます。

 **TLS バージョンの設定** 

1 つのユースケースは、Curl が環境にインストールされていることを前提に、Curl で Guzzle が使用する TLS バージョンを設定することです。サポートされている TLS のバージョンに関する Curl [バージョンの制約](https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html)に注意してください。デフォルトでは、最新バージョンが使用されます。TLS バージョンが明示的に設定されていて、リモートサーバーがこのバージョンをサポートしていない場合、以前の TLS バージョンを使用する代わりにエラーが発生します。

`debug` クライアントオプションを true に設定し、SSL 接続の出力を確認することによって、特定のクライアント操作に使用されている TLS のバージョンを決定できます。その行は次のようになります。`SSL connection using TLSv1.2`

Guzzle 6 で TLS 1.2を設定する例:

```
use Aws\DynamoDb\DynamoDbClient;
use Aws\Handler\GuzzleV6\GuzzleHandler;
use GuzzleHttp\Client;

$handler = new GuzzleHandler(
    new Client([
        'curl' => [
            CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
        ]
    ])
);

$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http_handler' => $handler
]);
```

**注記**  
`http_handler` オプションは、指定されたどの `handler` オプションよりも優先されます。

## profile
<a name="profile"></a>

タイプ  
 `string` 

「profile」オプションは、ホームディレクトリ (通常は ) の認証情報ファイルから AWS 認証情報を作成するときに使用するプロファイルを指定します`~/.aws/credentials`。この設定は `AWS_PROFILE` 環境変数をオーバーライドします。

**注記**  
「プロファイル」オプションを指定すると、`"credentials"`オプションは無視され、 AWS 設定ファイル (通常は `~/.aws/config`) の認証情報関連の設定は無視されます。

```
// Use the "production" profile from your credentials file
$ec2 = new Aws\Ec2\Ec2Client([
    'version' => '2014-10-01',
    'region'  => 'us-west-2',
    'profile' => 'production'
]);
```

[認証情報の設定と .ini ファイル形式の詳細については、 AWS SDK for PHP 「バージョン 3](guide_credentials.md) の認証情報」を参照してください。

## リージョン
<a name="cfg-region"></a>

タイプ  
 `string` 

必須  
true

AWS 接続先のリージョン。利用可能なリージョンのリストについては、「[AWS のリージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」を参照してください。

```
// Set the Region to the EU (Frankfurt) Region
$s3 = new Aws\S3\S3Client([
    'region'  => 'eu-central-1',
    'version' => '2006-03-01'
]);
```

## retries
<a name="config-retries"></a>

タイプ  
 `int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable` 

デフォルト  
 `int(3)` 

クライアントに対して再試行モードと許可される最大再試行回数を設定します。`0` を渡すと、再試行が無効になります。

次の 3 つの再試行モードがあります。
+ `legacy` - デフォルトのレガシー再試行実装
+ `standard` - 成功しそうもない再試行を防ぐため、再試行クォータシステムを追加 
+  `adaptive` - 標準モードに基づいて構築され、クライアント側のレートリミッターを追加します。このモードは実験的と見なされることに注意してください。

再試行の設定は、モードと各リクエストに使用される最大試行回数で構成されます。設定は、次の優先順位に従って、いくつかの異なる場所で設定できます。

 **優先順位** 

再試行設定の優先順位は次のとおりです (1 は 2-3 を上書きします)。

1. クライアント設定オプション

1. 環境変数

1. AWS 共有設定ファイル

 **環境変数** 
+  `AWS_RETRY_MODE` を `legacy`、`standard`、または `adaptive` に設定します。
+  `AWS_MAX_ATTEMPTS` - リクエストあたりの最大試行回数の整数値に設定

 **共有 Config ファイルキー** 
+  `retry_mode` を `legacy`、`standard`、または `adaptive` に設定します。
+  `max_attempts` - リクエストあたりの最大試行回数の整数値に設定

 **クライアント設定** 

次の例では、Amazon DynamoDB クライアントの再試行を無効にしています。

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 0
]);
```

次の例では、整数を渡します。デフォルトでは、再試行回数が渡された状態で `legacy` モードになります。

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 6
]);
```

**`Aws\Retry\Configuration` オブジェクトは、2 つのパラメータ、**  
再試行モードとリクエストごとの最大試行回数の整数を受け付けます。この例では、

 再試行設定の `Aws\Retry\Configuration` オブジェクトを渡します。

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\Retry\Configuration('adaptive', 10);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'retries' => $config,
]);
```

この例では、再試行設定のために配列を渡します。

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'retries' => [
        'mode' => 'standard',
        'max_attempts' => 7
    ],
]);
```

この例では、`Aws\CacheInterface` のインスタンスを渡して、デフォルトの再試行設定プロバイダーから返された値をキャッシュします。

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

## scheme
<a name="scheme"></a>

タイプ  
 `string` 

デフォルト  
 `string(5) "https"` 

接続するときに使用される URI スキーム。SDK では、デフォルトでは「https」エンドポイント (つまり、SSL/TLS 接続) が使用されます。`scheme` を「http」に設定することによって、暗号化されていない「http」エンドポイントでのサービスへの接続を試行できます。

```
$s3 = new Aws\S3\S3Client([
    'version' => '2006-03-01',
    'region'  => 'us-west-2',
    'scheme'  => 'http'
]);
```

エンドポイントの一覧と `http` スキームをサポートするサービスについては、「[AWS のリージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」を参照してください。

## サービス
<a name="service"></a>

タイプ  
 `string` 

必須  
true

使用するサービスの名前。SDK で提供されているクライアントを使用する場合は、この値はデフォルトで指定されています (例: `Aws\S3\S3Client`)。このオプションは、SDK でまだ公開されていないがディスク上ですでに使用可能なサービスをテストするときに便利です。

## signature\$1provider
<a name="signature-provider"></a>

タイプ  
 `callable` 

署名バージョン名 (例: `v4`)、サービス名、 AWS リージョンを受け入れ、`Aws\Signature\SignatureInterface`オブジェクトを返すか、`NULL`プロバイダーが指定されたパラメータの署名者を作成できるかどうかを返す呼び出し可能な 。このプロバイダは、クライアントで使用される署名者を作成するために使用されます。

SDK の `Aws\Signature\SignatureProvider` クラスでは、カスタマイズされた署名プロバイダを作成するために使用できるさまざまな機能が提供されています。

## signature\$1version
<a name="signature-version"></a>

タイプ  
 `string` 

サービスで使用されるカスタム署名バージョンを表す文字列 (例: `v4`)。オペレーション署名バージョンによって、このリクエストされた署名が必要に応じてオーバーライドされることがあります。

次の例は、[署名バージョン 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) を使用するように Amazon S3 クライアントを設定する方法を示しています。

```
// Set a preferred signature version
$s3 = new Aws\S3\S3Client([
    'version'           => '2006-03-01',
    'region'            => 'us-west-2',
    'signature_version' => 'v4'
]);
```

**注記**  
クライアントで使用する `signature_provider` は、指定した `signature_version` オプションを作成できる必要があります。SDK で使用されるデフォルトの `signature_provider` は、「v4」および「anonymous」署名バージョンの署名オブジェクトを作成できます。

## ua\$1append
<a name="ua-append"></a>

タイプ  
 `string|string[]` 

デフォルト  
 `[]` 

HTTP ハンドラーに渡されるユーザーエージェント文字列に追加される、文字列または文字列の配列。

## use\$1aws\$1shared\$1config\$1files
<a name="use-aws-shared-config-files"></a>

タイプ  
 `bool|array` 

デフォルト  
 `bool(true)` 

'\$1/.aws/config 'および '\$1/.aws/credentials' の共有設定ファイルのチェックを無効にするには false に設定します。これは、AWS\$1CONFIG\$1FILE 環境変数をオーバーライドします。

## validate
<a name="validate"></a>

タイプ  
 `bool|array` 

デフォルト  
 `bool(true)` 

`false` に設定すると、クライアント側のパラメーター検証が無効になります。検証をオフにすると、クライアントのパフォーマンスがわずかに向上することがありますが、その違いは無視できる程度です。

```
// Disable client-side validation
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => false
]);
```

検証オプションの連想配列に設定すると、以下の特定の検証の制約が有効になります。
+  `required` - 必須パラメーターが存在することを検証します (デフォルトでオン)。
+  `min` - 値の最小長さを検証します (デフォルトでオン)。
+  `max` - 値の最大長を検証します。
+  `pattern` - 値が正規表現と一致することを検証します。

```
// Validate only that required values are present
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => ['required' => true]
]);
```

## バージョン
<a name="cfg-version"></a>

タイプ  
 `string` 

必須  
false

このオプションは、使用するウェブサービスのバージョン (例: `2006-03-01`) を指定します。

SDK のバージョン 3.277.10 以降では、「version」オプションは不要になりました。「version」オプションを指定しない場合、SDK は、最新バージョンのサービスクライアントを使用します。

サービスクライアントを作成するときに「version」パラメータが必要なのは 2 つの状況です。
+ 3.277.10 より前のバージョンの PHP SDK を使用する。
+ バージョン 3.277.10 以降を使用していて、「latest」以外のバージョンをサービスクライアントに使用したいと思っている。

たとえば、次のスニペットでは SDK のバージョン 3.279.7 を使用していますが、`Ec2Client` の最新バージョンは使用していません。

```
$ec2Client = new \Aws\Ec2\Ec2Client([
    'version' => '2015-10-01',
    'region' => 'us-west-2'
]);
```

バージョン制約を指定すると、サービスに対して行われた互換性を破る変更の影響を受けないことが保証されます。

使用可能な API バージョンの一覧については、各クライアントの [API ドキュメントのページ](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html)を参照してください。特定の API バージョンをロードできない場合は、SDK のコピーの更新が必要になることがあります。