

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Proveedor `process` en el SDK para PHP
<a name="process-provider"></a>

 `Aws\Credentials\CredentialProvider::process`intenta cargar las credenciales ejecutando el `credential_process` valor especificado en un perfil de un [archivo de AWS configuración compartido](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html). 

De forma predeterminada, el SDK intenta cargar primero el perfil «predeterminado» desde el AWS `credentials` archivo compartido ubicado en`~/.aws/credentials`. Si no se encuentra el perfil “default” en el archivo `credentials` compartido, el SDK busca el perfil predeterminado en el archivo `config` compartido. A continuación, se muestra un ejemplo de configuración del archivo `credentials` compartido.

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

El SDK llamará al comando `credential_process` exactamente tal y como se ha indicado utilizando la función `shell_exec` de PHP y, a continuación, leerá los datos JSON desde la salida estándar (stdout). El comando `credential_process` debe escribir las credenciales en stdout con el formato siguiente:

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

 `SessionToken` y `Expiration` son opcionales. Si se utilizan, las credenciales se considerarán temporales.

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

Puede utilizar un perfil personalizado o una ubicación de archivo.ini proporcionando argumentos a la función que crea el proveedor.

```
$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
]);
```