

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

# SDK for PHP の `process` プロバイダ
<a name="process-provider"></a>

 `Aws\Credentials\CredentialProvider::process` は、[共有 AWS 設定ファイルの](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)プロファイルで指定された`credential_process`値を実行して、認証情報のロードを試みます。

デフォルトでは、SDK は にある共有 AWS `credentials`ファイルから最初に「デフォルト」プロファイルをロードしようとします`~/.aws/credentials`。共有 `credentials` ファイルで「default」プロファイルが見つからない場合、SDK は共有 `config` ファイルで default プロファイルを検索します。次は共有 `credentials` ファイルの設定の例です。

```
[default]
credential_process = /path/to/file/credential_returning_executable.sh --custom-command custom_parameter
```

SDK は `shell_exec` 関数を使用し、stdout から JSON データを読み取ることで、指定どおりに `credential_process` コマンドを呼び出します。`credential_process` は次の形式で stdout に認証情報を書き込む必要があります。

```
{
    "Version": 1,
    "AccessKeyId": "",
    "SecretAccessKey": "",
    "SessionToken": "",
    "Expiration": ""
}
```

 `SessionToken` および `Expiration` はオプションです。存在する場合、認証情報は一時的なものとして扱われます。

```
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;

$provider = CredentialProvider::process();
// Cache the results in a memoize function to avoid loading and parsing
// the ini file on every API operation
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```

プロバイダを作成する関数に引数を指定することによって、カスタムプロファイルまたは .ini ファイルの場所を指定できます。

```
$profile = 'production';
$path = '/full/path/to/credentials.ini';

$provider = CredentialProvider::process($profile, $path);
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```