

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat penyedia kredensi khusus untuk digunakan dengan SDK for PHP
<a name="creating-a-custom-provider"></a>

Penyedia kredensi hanyalah fungsi yang ketika dipanggil mengembalikan promise (`GuzzleHttp\Promise\PromiseInterface`) yang dipenuhi dengan `Aws\Credentials\CredentialsInterface` objek atau ditolak dengan. `Aws\Exception\CredentialsException`

Praktik terbaik untuk membuat penyedia adalah membuat fungsi yang dipanggil untuk membuat penyedia kredensi yang sebenarnya. Sebagai contoh, inilah sumber `env` penyedia (sedikit dimodifikasi untuk tujuan contoh). Perhatikan bahwa itu adalah fungsi yang mengembalikan fungsi penyedia yang sebenarnya. Ini memungkinkan Anda untuk dengan mudah membuat penyedia kredensi dan menyebarkannya sebagai nilai.

```
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));
    };
}
```