

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

# SDK for PHP で使用するカスタム認証情報プロバイダの作成
<a name="creating-a-custom-provider"></a>

認証情報プロバイダは、呼び出されたときに、`GuzzleHttp\Promise\PromiseInterface` で満たすかまたは`Aws\Credentials\CredentialsInterface` で拒否した promise (`Aws\Exception\CredentialsException`) を返す単純な関数です。

プロバイダを作成する際のベストプラクティスとして、実際の認証情報プロバイダを作成するために呼び出される関数を作成します。その例として、`env` プロバイダのソース (例として使用するために多少変更している) を次に示します。この関数は、実際のプロバイダ関数を返す関数であることがわかります。そうすることによって、認証情報プロバイダの作成およびそれを値として渡すことが簡単になります。

```
use GuzzleHttp\Promise;
use GuzzleHttp\Promise\RejectedPromise;

// This function CREATES a credential provider
public static function env()
{
    // This function IS the credential provider
    return function () {
        // Use credentials from environment variables, if available
        $key = getenv(self::ENV_KEY);
        $secret = getenv(self::ENV_SECRET);
        if ($key && $secret) {
            return Create::promise_for(
                new Credentials($key, $secret, getenv(self::ENV_SESSION))
            );
        }

        $msg = 'Could not find environment variable '
            . 'credentials in ' . self::ENV_KEY . '/' . self::ENV_SECRET;
        return new RejectedPromise(new CredentialsException($msg));
    };
}
```