翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for PHP バージョン 3 の設定
クライアントコンストラクタは、クライアントコンストラクタまたは Aws\Sdk
クラスで指定できます。特定のタイプのクライアントに指定されるオプションの配列は、作成するクライアントによって異なります。これらのカスタムクライアント設定オプションについては、各クライアントの API ドキュメントに記載されています。
一部の設定オプションでは、環境変数または AWS 設定ファイルに基づいてデフォルト値がチェックおよび使用されることに注意してください。デフォルトでは、チェックされる設定ファイルは、ホームディレクトリの .aws/config
で、通常、~/.aws/config
です。ただし、環境変数 AWS_CONFIG_FILE
を使用して、デフォルトの設定ファイルの場所を設定できます。例えば、これは open_basedir
などで特定のディレクトリへのファイルアクセスを制限する場合に便利です。
共有 AWS config
ファイルとcredentials
ファイルの場所とフォーマットの詳細については、AWS SDKs and Tools リファレンスガイド」の「設定」を参照してください。
設定ファイルまたは環境変数として設定 AWS できるすべてのグローバル設定の詳細については、AWS SDKs and Tools リファレンスガイドの「設定と認証設定のリファレンス」を参照してください。
設定オプション
以下の例では、Amazon S3 のクライアントコンストラクタにオプションを渡す方法を示しています。
use Aws\S3\S3Client; $options = [ 'region' => 'us-west-2', 'version' => '2006-03-01', 'signature_version' => 'v4' ]; $s3Client = new S3Client($options);
クライアントの作成の詳細については、「基本使用法ガイド」を参照してください。
api_provider
- タイプ
-
callable
タイプ、サービス、バージョン引数を受け入れ、対応する設定データの配列を返す呼び出し可能な PHP。タイプの値は api
、waiter
、paginator
のいずれかです。
デフォルトでは、SDK は、API の src/data
フォルダから Word ファイルをロードAws\Api\FileSystemApiProvider
する のインスタンスを使用しますSDK。
認証情報
- タイプ
-
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 SDKs and Tools リファレンスガイド」の「共有ファイルconfig
」とcredentials
「ファイル」を参照してください。
使用する認証情報プロバイダを指定せず、認証情報プロバイダチェーンに依存している場合、認証失敗によるエラーメッセージは通常一般的なものです。有効な認証情報を確認しているソースのリストの最後のプロバイダから生成されますが、そのプロバイダは使用しようとしているプロバイダではない可能性があります。どの認証情報プロバイダを使用するかを指定すると、表示されるエラーメッセージはそのプロバイダのみから出力されるため、より有用で関連性の高いものになります。認証情報をチェックしたソースチェーンの詳細については、AWS SDKs and Tools リファレンスガイドの「認証情報プロバイダーチェーン」を参照してください。
Null 認証情報を使用し、リクエストに署名しないように、false
を渡します。
$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => false ]);
関数を使用して認証情報を作成するために、呼び出し可能な認証情報プロバイダ関数を渡します。
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 の認証情報ガイドを参照してください。
注記
認証情報のロードおよび検証は、それが使用されるときまで遅延されます。
デバッグ
- タイプ
-
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_size (int)
-
ストリームのサイズがこの数より大きい場合、ストリームデータは記録されません。
0
に設定すると、ストリームデータは一切記録されません。 - scrub_auth (bool)
-
ログに記録されたメッセージからの認証データのスクラブを無効にする
false
には、 を設定します (つまり、 AWS アクセスキー ID と署名が に渡されますlogfn
)。 - http (bool)
-
を に設定
false
して、下位レベルの HTTP ハンドラーのデバッグ機能 (詳細 cURL 出力など) を無効にします。 - auth_headers (array)
-
置き換え先の値にマッピングされている、置き換えるヘッダーの、キーと値のマッピングに設定します。
scrub_auth
がtrue
に設定されていない場合、これらの値は使用されません。 - auth_strings (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
- タイプ
-
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)
-
true
に設定すると、再試行に関するレポートが有効になります。デフォルトでは、再試行の統計情報が収集されて、返されます。 - http (bool)
-
を に設定
true
して、下位レベルの HTTP アダプター (Word で返される値など GuzzleHttpTransferStats) から統計を収集できるようにします。HTTP ハンドラーが __on_transfer_stats オプションをサポートしている必要があります。HTTP統計は、関連付け配列のインデックス付き配列として返されます。各関連付け配列には、クライアントの 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'];
エンドポイント
- タイプ
-
string
ウェブサービスの完全な URI。これは、アカウント固有のエンドポイントを使用する AWS Elemental MediaConvert などのサービスに必須です。これらのサービスについては、describeEndpoints
メソッドを使用してこのエンドポイントをリクエストしてください。
これは、カスタムエンドポイント (例: Amazon S3 または Amazon DynamoDB Local のローカルバージョン) に接続する場合にのみ必要です。
Amazon DynamoDB ローカルへの接続の例を次に示します。
$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-east-1', 'endpoint' => 'http://localhost:8000' ]);
使用可能なAWS リージョンとエンドポイントのリストについては、 AWS リージョンとエンドポイントを参照してください。
endpoint_provider
- タイプ
-
Aws\EndpointV2\EndpointProviderV2|callable
「サービス」や「リージョン」キーなど、オプションのハッシュを受け入れる EndpointProviderV2 または PHP callable のオプションインスタンス。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_discovery
- タイプ
-
array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable
エンドポイント検出は、エンドポイント検出をサポートするサービス API の正しいエンドポイントを識別して接続します。エンドポイント検出をサポートするが、これを必要としないサービスの場合、クライアントの作成中に endpoint_discovery
を有効にします。サービスがエンドポイント検出をサポートしていない場合、この設定は無視されます。
Aws\EndpointDiscovery\ConfigurationInterface
サービスが指定するオペレーションのために、サービス API の適切なエンドポイントへの自動接続を有効にするオプションの設定プロバイダー。
Aws\EndpointDiscovery\Configuration
オブジェクトでは 2 つのオプションを使用できます。1 つはエンドポイント検出が有効な場合にそれを示すブール値「enabled」で、もう 1 つはエンドポイントキャッシュのキーの最大数を示す整数「cache_limit」です。
作成されるクライアントごとに、エンドポイント検出の特定の設定を使用するために 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
- タイプ
-
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
- タイプ
-
array
HTTP によって作成された HTTP リクエストと転送に適用される一連の SDK オプションに設定します。
SDK では、次の設定オプションがサポートされています。
cert
- タイプ
-
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_timeout
サーバーへの接続の試行時に待機する秒数を記述する浮動小数点。0
に設定すると、無期限に待機します (デフォルト動作)。
use Aws\DynamoDb\DynamoDbClient; // Timeout after attempting to connect for 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'connect_timeout' => 5 ] ]);
デバッグ
- タイプ
-
bool|resource
基盤となる HTTP ハンドラーにデバッグ情報を出力するように指示します。Word HTTPハンドラーによって提供されるデバッグ情報は異なります。
-
を渡
true
してデバッグ出力を STDOUT に書き込みます。 -
特定の PHP ストリームリソース
fopen
にデバッグ出力を書き込むには、 から返されたresource
を渡します。
decode_content
- タイプ
-
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
- タイプ
-
int
リクエストを送信する前の遅延の時間数 (ミリ秒単位)。これは、リクエストを再試行する前に遅延するためによく使用されます。
expect
- タイプ
-
bool|string
このオプションは、基盤となる HTTP ハンドラーに渡されます。デフォルトでは、リクエストの本文が 1 MB を超えたときに Expect: 100-Continue ヘッダーが設定されます。true
または false
により、すべてのリクエストでヘッダーが有効または無効になります。整数を使用する場合、この設定を超える本文を持つリクエストのみが、ヘッダーを使用します。整数として使用した場合、本文のサイズが不明なときは Expect ヘッダーが送信されます。
警告
Expect ヘッダーを無効にすると、サービスは認証エラーやその他のエラーを返すことができなくなる場合があります。このオプションの設定には注意が必要です。
progress
- タイプ
-
callable
転送の進行状況が作成されたときに呼び出す関数を定義します。この関数は以下の次の引数を受け入れます。
-
ダウンロードすることになっている総バイト数。
-
これまでにダウンロード済みのバイト数。
-
アップロードすることになっている総バイト数。
-
これまでにアップロード済みのバイト数。
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
- タイプ
-
string|array
proxy
オプションを使用して、プロキシ経由で AWS サービスに接続できます。
-
すべてのタイプの URIs のプロキシに接続する文字列値を指定します。このプロキシ文字列値には、スキーム、ユーザー名、およびパスワードを含めることができます。例えば、
"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
- タイプ
-
resource|string|Psr\Http\Message\StreamInterface
sink
オプションは、オペレーションのレスポンスデータのダウンロード先を制御します。
-
レスポンス本文を PHP ストリームにダウンロード
fopen
するには、 から返resource
された を指定します。 -
ディスク上のファイルのパスを
string
値として指定すると、レスポンス本文はディスク上の特定のファイルにダウンロードされます。 -
特定の PSR ストリームオブジェクトにレスポンス本文をダウンロードする
Psr\Http\Message\StreamInterface
には、 を指定します。
注記
SDK は、デフォルトでレスポンス本文を PHP 一時ストリームにダウンロードします。つまり、本文のサイズが 2 MB に達するまでデータはメモリに保持され、2 MB に達した時点でそのデータはディスク上の一時ファイルに書き込まれます。
synchronous
- タイプ
-
bool
synchronous
オプションは、結果をブロックする予定の基になる HTTP ハンドラーに通知します。
ストリーム
- タイプ
-
bool
を true
に設定して、ウェブサービスからレスポンスのレスポンス本文を事前にダウンロードするのではなく、そのレスポンス本文をストリーミングするように基になる HTTP ハンドラーに指示します。例えば、Amazon S3 のストリームラッパークラスでは、データが確実にストリーミングされるように、このオプションを使用します。
timeout
- タイプ
-
float
リクエストのタイムアウトを秒数で記述する浮動小数点。0
に設定すると、無期限に待機します (デフォルト動作)。
use Aws\DynamoDb\DynamoDbClient; // Timeout after 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'timeout' => 5 ] ]);
認証
- タイプ
-
bool|string
verify
http
オプションを使用して、SDK のピア SSL/TLS 証明書の検証動作をカスタマイズできます。
-
を に設定
true
して、SSL/TLS ピア証明書の検証を有効にし、オペレーティングシステムが提供するデフォルトの CA バンドルを使用します。 -
false
に設定すると、ピアの証明書検証が無効になります (これは安全ではありません)。 -
CA 証明書バンドルのパスを指定する文字列に設定すると、カスタム CA バンドルを使用した検証が有効になります。
システムの CA バンドルが見つからず、エラーが表示された場合は、 SDK への CA バンドルへのパスを指定します。特定の CA バンドルが必要ない場合、Mozilla は一般的に使用される CA バンドルを提供しており、ここでopenssl.cafile
PHP .ini 設定を設定して、verify
リクエストオプションを省略できます。詳細については、cURL ウェブサイト
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_handler
- タイプ
-
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
に設定すると、そのエラーが接続エラーとしてマークされます。この値を に設定すると、必要に応じて SDK が自動的にオペレーションを再試行true
できます。
SDK は、提供された をAws\WrappedHttpHandler
オブジェクトhttp_handler
でラップすることで、指定された を通常のhandler
オプションhttp_handler
に自動的に変換します。
デフォルトでは、SDK は HTTP ハンドラーとして Guzzle を使用します。ここで別の HTTP ハンドラーを指定するか、独自のカスタム定義オプションを Guzzle クライアントに提供できます。
TLS バージョンの設定
1 つのユースケースは、Curl が環境にインストールされていると仮定して、Guzzle with Curl で使用される TLS バージョンを設定することです。サポートされている TLS のバージョンに関する Curl バージョンの制約
クライアントオプションを true に設定し、TLS 接続出力を調べることで、特定のdebug
クライアントオペレーションに使用される SSL バージョンを決定できます。その行は次のようになります。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
- タイプ
-
string
「プロファイル」オプションは、HOME ディレクトリの認証情報ファイル (通常は ) から 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 の認証情報を参照してください。
region
- タイプ
-
string
- 必須
-
true
AWS 接続先のリージョン。利用可能なリージョンのリストについては、「AWS のリージョンとエンドポイント」を参照してください。
// Set the Region to the EU (Frankfurt) Region $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);
retries
- タイプ
-
int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable
- デフォルト
-
int(3)
クライアントに対して再試行モードと許可される最大再試行回数を設定します。0
を渡すと、再試行が無効になります。
次の 3 つの再試行モードがあります。
-
legacy
- デフォルトのレガシー再試行実装 -
standard
- 成功しそうもない再試行を防ぐため、再試行クォータシステムを追加 -
adaptive
- 標準モードに基づいて構築され、クライアント側のレートリミッターを追加します。このモードは実験的と見なされることに注意してください。
再試行の設定は、モードと各リクエストに使用される最大試行回数で構成されます。設定は、次の優先順位に従って、いくつかの異なる場所で設定できます。
優先順位
再試行設定の優先順位は次のとおりです (1 は 2-3 を上書きします)。
-
クライアント設定オプション
-
環境変数
-
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
- タイプ
-
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 のリージョンとエンドポイント」を参照してください。
service
- タイプ
-
string
- 必須
-
true
使用するサービスの名前。この値は、SDK によって提供されるクライアント ( などAws\S3\S3Client
) を使用する場合にデフォルトで提供されます。このオプションは、SDK でまだ公開されていないが、ディスクで利用可能なサービスをテストする場合に役立ちます。
signature_provider
- タイプ
-
callable
署名バージョン名 (例: v4
)、サービス名、 AWS リージョンを受け入れ、Aws\Signature\SignatureInterface
オブジェクトを返すか、プロバイダーが特定のパラメータの署名者を作成できるNULL
場合に呼び出せる。このプロバイダは、クライアントで使用される署名者を作成するために使用されます。
クラスには、カスタマイズされた署名プロバイダーの作成Aws\Signature\SignatureProvider
に使用できる SDK によって提供されるさまざまな関数があります。
signature_version
- タイプ
-
string
サービスで使用されるカスタム署名バージョンを表す文字列 (例: v4
)。オペレーションごとの署名バージョン MAY は、必要に応じて、このリクエストされた署名バージョンを上書きします。
次の例は、署名バージョン 4 を使用するように Amazon S3 クライアントを設定する方法を示しています。
// Set a preferred signature version $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'signature_version' => 'v4' ]);
注記
クライアント MUST signature_provider
で使用される は、指定したsignature_version
オプションを作成できます。SDK signature_provider
で使用されるデフォルトは、「v4」および「匿名」署名バージョンの署名オブジェクトを作成できます。
ua_append
- タイプ
-
string|string[]
- デフォルト
-
[]
HTTP ハンドラーに渡されるユーザーエージェント文字列に追加される文字列の文字列または配列。
use_aws_shared_config_files
- タイプ
-
bool|array
- デフォルト
-
bool(true)
false に設定して、「~/.aws/config’ and ‘~/.aws/credentials」で共有設定ファイルの確認を無効にします。これにより、AWS_CONFIG_FILE 環境変数が上書きされます。
validate
- タイプ
-
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] ]);
version
- タイプ
-
string
- 必須
-
false
このオプションは、使用するウェブサービスのバージョン (例: 2006-03-01
) を指定します。
SDK のバージョン 3.277.10 以降では、「バージョン」オプションは必要ありません。「バージョン」オプションを指定しない場合、SDK はサービスクライアントの最新バージョンを使用します。
サービスクライアントを作成するときに「version」パラメータが必要なのは 2 つの状況です。
-
3.277.10 より前のバージョンの PHPSDK を使用します。
-
バージョン 3.277.10 以降を使用していて、「latest」以外のバージョンをサービスクライアントに使用したいと思っている。
例えば、次のスニペットは SDK のバージョン 3.279.7 を使用しますが、 の最新バージョンは使用しませんEc2Client
。
$ec2Client = new \Aws\Ec2\Ec2Client([ 'version' => '2015-10-01', 'region' => 'us-west-2' ]);
バージョン制約を指定すると、サービスに対して行われた互換性を破る変更の影響を受けないことが保証されます。
使用可能な API バージョンのリストは、各クライアントの API ドキュメントページにあります。特定の API バージョンをロードできない場合は、SDK のコピーを更新する必要がある場合があります。