

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de flux de diffusion à l'aide de l'API Firehose et de la version 3 AWS SDK pour PHP
<a name="kinesis-firehose-example-delivery-stream"></a>

Amazon Data Firehose vous permet d'envoyer des données en temps réel à d'autres AWS services, notamment Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (OpenSearch Service) et Amazon Redshift, ou à Splunk. Créer un producteur de données avec les flux de diffusion pour transférer des données vers la destination configurée chaque fois que vous ajoutez des données.

Les exemples suivants montrent comment :
+ Créez un flux de diffusion à l'aide de [CreateDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#createdeliverystream).
+ Obtenez des informations sur un seul flux de diffusion à l'aide de [DescribeDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#describedeliverystream).
+ Répertoriez vos flux de diffusion à l'aide de [ListDeliveryStreams](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#listdeliverystreams).
+ Envoyez des données à un flux de diffusion à l'aide de [PutRecord](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#putrecord).
+ Supprimez un flux de diffusion à l'aide de [DeleteDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#deletedeliverystream).

Tous les exemples de code pour le AWS SDK pour PHP sont [disponibles ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Informations d’identification
<a name="examplecredentials"></a>

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dans[Authentification à l' AWS aide de AWS SDK pour PHP la version 3](credentials.md). Importez ensuite le AWS SDK pour PHP, comme décrit dans[Installation de la AWS SDK pour PHP version 3](getting-started_installation.md).

Pour plus d'informations sur l'utilisation d'Amazon Data Firehose, consultez le manuel du développeur [Amazon Kinesis Data](https://docs.aws.amazon.com/streams/latest/dev/) Firehose.

## Création d'un flux de diffusion à l'aide d'un flux de données Kinesis
<a name="create-a-delivery-stream-using-a-ak-data-stream"></a>

Pour établir un flux de diffusion qui place les données dans un flux de données Kinesis existant, utilisez l'[CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)opération.

Cela permet aux développeurs de migrer les services Kinesis existants vers Firehose.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_stream_name";
$stream_type = "KinesisStreamAsSource";
$kinesis_stream = "arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name";
$role = "arn:aws:iam::0123456789:policy/Role";

try {
    $result = $firehoseClient->createDeliveryStream([
        'DeliveryStreamName' => $name,
        'DeliveryStreamType' => $stream_type,
        'KinesisStreamSourceConfiguration' => [
            'KinesisStreamARN' => $kinesis_stream,
            'RoleARN' => $role,
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Création d'un flux de diffusion à l'aide d'un compartiment Amazon S3
<a name="create-a-delivery-stream-using-an-s3-bucket"></a>

Pour établir un flux de diffusion qui place les données dans un compartiment Amazon S3 existant, utilisez l'[CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)opération.

Indiquez les paramètres de destination, comme indiqué dans la section [Paramètres de destination](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html). Assurez-vous ensuite d'accorder à Firehose l'accès à votre compartiment Amazon S3, comme décrit dans [Accorder à Kinesis Data Firehose l'accès à une](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3.html) destination Amazon S3.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_S3_stream_name";
$stream_type = "DirectPut";
$s3bucket = 'arn:aws:s3:::bucket_name';
$s3Role = 'arn:aws:iam::0123456789:policy/Role';

try {
    $result = $firehoseClient->createDeliveryStream([
        'DeliveryStreamName' => $name,
        'DeliveryStreamType' => $stream_type,
        'S3DestinationConfiguration' => [
            'BucketARN' => $s3bucket,
            'CloudWatchLoggingOptions' => [
                'Enabled' => false,
            ],
            'RoleARN' => $s3Role
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Création d'un flux de diffusion à l'aide OpenSearch de Service
<a name="create-a-delivery-stream-using-es"></a>

Pour établir un flux de diffusion Firehose qui place les données dans un cluster de OpenSearch services, utilisez l'[CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)opération.

Indiquez les paramètres de destination, comme indiqué dans la section [Paramètres de destination](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html). Assurez-vous d'accorder à Firehose l'accès à votre cluster de OpenSearch services, comme décrit dans [Accorder à Kinesis Data Firehose l'accès à une destination](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es.html) Amazon ES.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_ES_stream_name";
$stream_type = "DirectPut";
$esDomainARN = 'arn:aws:es:us-east-2:0123456789:domain/Name';
$esRole = 'arn:aws:iam::0123456789:policy/Role';
$esIndex = 'root';
$esType = 'PHP_SDK';
$s3bucket = 'arn:aws:s3:::bucket_name';
$s3Role = 'arn:aws:iam::0123456789:policy/Role';

try {
    $result = $firehoseClient->createDeliveryStream([
        'DeliveryStreamName' => $name,
        'DeliveryStreamType' => $stream_type,
        'ElasticsearchDestinationConfiguration' => [
            'DomainARN' => $esDomainARN,
            'IndexName' => $esIndex,
            'RoleARN' => $esRole,
            'S3Configuration' => [
                'BucketARN' => $s3bucket,
                'CloudWatchLoggingOptions' => [
                    'Enabled' => false,
                ],
                'RoleARN' => $s3Role,
            ],
            'TypeName' => $esType,
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Récupérez un flux de diffusion
<a name="retrieve-a-delivery-stream"></a>

Pour obtenir des informations sur un flux de diffusion Firehose existant, utilisez l'[DescribeDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DescribeDeliveryStream.html)opération.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_stream_name";

try {
    $result = $firehoseClient->describeDeliveryStream([
        'DeliveryStreamName' => $name,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Répertorier les flux de diffusion existants connectés à Kinesis Data Streams
<a name="list-existing-delivery-streams-connected-to-aks"></a>

Pour répertorier tous les flux de diffusion Firehose existants qui envoient des données à Kinesis Data Streams, utilisez l'opération. [ListDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ListDeliveryStreams.html)

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

try {
    $result = $firehoseClient->listDeliveryStreams([
        'DeliveryStreamType' => 'KinesisStreamAsSource',
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Répertorier les flux de diffusion existants envoyant des données à d'autres AWS services
<a name="list-existing-delivery-streams-sending-data-to-other-aws-services"></a>

Pour répertorier tous les flux de diffusion Firehose existants qui envoient des données à Amazon S3, OpenSearch Service, Amazon Redshift ou à Splunk, utilisez l'opération. [ListDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ListDeliveryStreams.html)

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

try {
    $result = $firehoseClient->listDeliveryStreams([
        'DeliveryStreamType' => 'DirectPut',
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Envoyer des données vers un flux de diffusion Firehose existant
<a name="send-data-to-an-existing-akf-delivery-stream"></a>

Pour envoyer des données via un flux de diffusion Firehose vers la destination que vous avez spécifiée, utilisez l'[PutRecord](https://docs.aws.amazon.com/firehose/latest/APIReference/API_API_PutRecord.html)opération après avoir créé un flux de diffusion Firehose.

Avant d'envoyer des données à un flux de diffusion Firehose, utilisez-le `DescribeDeliveryStream` pour vérifier si le flux de diffusion est actif.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_stream_name";
$content = '{"ticker_symbol":"QXZ", "sector":"HEALTHCARE", "change":-0.05, "price":84.51}';

try {
    $result = $firehoseClient->putRecord([
        'DeliveryStreamName' => $name,
        'Record' => [
            'Data' => $content,
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Supprimer un flux de diffusion Firehose
<a name="delete-a-akf-delivery-stream"></a>

Pour supprimer un flux de diffusion Firehose, utilisez l'[DeleteDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DeleteDeliveryStreams.html)opération. Ceci supprime également toutes les données envoyées dans le flux de diffusion.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Exemple de code** 

```
$firehoseClient = new Aws\Firehose\FirehoseClient([
    'profile' => 'default',
    'version' => '2015-08-04',
    'region' => 'us-east-2'
]);

$name = "my_stream_name";

try {
    $result = $firehoseClient->deleteDeliveryStream([
        'DeliveryStreamName' => $name,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```