

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

# Membuat aliran pengiriman menggunakan Firehose API dan Versi 3 AWS SDK untuk PHP
<a name="kinesis-firehose-example-delivery-stream"></a>

Amazon Data Firehose memungkinkan Anda mengirim data real-time ke AWS layanan lain termasuk Amazon Kinesis Data Streams, Amazon S3, Layanan Amazon (OpenSearch Layanan), dan OpenSearch Amazon Redshift, atau ke Splunk. Buat produsen data dengan aliran pengiriman untuk mengirimkan data ke tujuan yang dikonfigurasi setiap kali Anda menambahkan data.

Contoh berikut menunjukkan cara:
+ Buat aliran pengiriman menggunakan [CreateDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#createdeliverystream).
+ Dapatkan detail tentang aliran pengiriman tunggal menggunakan [DescribeDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#describedeliverystream).
+ Buat daftar aliran pengiriman Anda menggunakan [ListDeliveryStreams](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#listdeliverystreams).
+ Kirim data ke aliran pengiriman menggunakan [PutRecord](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#putrecord).
+ Hapus aliran pengiriman menggunakan [DeleteDeliveryStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-firehose-2015-08-04.html#deletedeliverystream).

Semua kode contoh untuk AWS SDK untuk PHP tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Kredensial
<a name="examplecredentials"></a>

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. [Mengautentikasi dengan AWS menggunakan AWS SDK untuk PHP Versi 3](credentials.md) Kemudian impor AWS SDK untuk PHP, seperti yang dijelaskan dalam[Menginstal AWS SDK untuk PHP Versi 3](getting-started_installation.md).

Untuk informasi selengkapnya tentang penggunaan Amazon Data Firehose, lihat Panduan Pengembang [Amazon Kinesis](https://docs.aws.amazon.com/streams/latest/dev/) Data Firehose.

## Buat aliran pengiriman menggunakan aliran data Kinesis
<a name="create-a-delivery-stream-using-a-ak-data-stream"></a>

Untuk membuat aliran pengiriman yang menempatkan data ke dalam aliran data Kinesis yang ada, gunakan operasi. [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)

Hal ini memungkinkan pengembang untuk memigrasikan layanan Kinesis yang ada ke Firehose.

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Buat aliran pengiriman menggunakan bucket Amazon S3
<a name="create-a-delivery-stream-using-an-s3-bucket"></a>

Untuk membuat aliran pengiriman yang menempatkan data ke dalam bucket Amazon S3 yang ada, gunakan operasi. [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)

Berikan parameter tujuan, seperti yang dijelaskan dalam [Parameter Tujuan](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html). Kemudian pastikan Anda memberikan akses Firehose ke bucket Amazon S3, seperti yang dijelaskan [dalam Berikan Akses Firehose Data Kinesis ke](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3.html) Tujuan Amazon S3.

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Buat aliran pengiriman menggunakan OpenSearch Layanan
<a name="create-a-delivery-stream-using-es"></a>

Untuk membuat aliran pengiriman Firehose yang menempatkan data ke dalam kluster OpenSearch Layanan, gunakan operasi. [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)

Berikan parameter tujuan, seperti yang dijelaskan dalam [Parameter Tujuan](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html). Pastikan Anda memberikan akses Firehose ke kluster OpenSearch Layanan, seperti yang dijelaskan dalam [Berikan Akses Firehose Data Kinesis ke](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es.html) Tujuan Amazon ES.

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Mengambil aliran pengiriman
<a name="retrieve-a-delivery-stream"></a>

Untuk mendapatkan detail tentang aliran pengiriman Firehose yang ada, gunakan operasi. [DescribeDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DescribeDeliveryStream.html)

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Buat daftar aliran pengiriman yang ada yang terhubung ke Kinesis Data Streams
<a name="list-existing-delivery-streams-connected-to-aks"></a>

Untuk mencantumkan semua aliran pengiriman Firehose yang ada yang mengirim data ke Kinesis Data Streams, gunakan operasi. [ListDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ListDeliveryStreams.html)

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Buat daftar aliran pengiriman yang ada yang mengirim data ke layanan lain AWS
<a name="list-existing-delivery-streams-sending-data-to-other-aws-services"></a>

Untuk mencantumkan semua aliran pengiriman Firehose yang ada yang mengirim data ke Amazon S3, Layanan, OpenSearch atau Amazon Redshift, atau ke Splunk, gunakan operasi. [ListDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ListDeliveryStreams.html)

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Kirim data ke aliran pengiriman Firehose yang ada
<a name="send-data-to-an-existing-akf-delivery-stream"></a>

Untuk mengirim data melalui aliran pengiriman Firehose ke tujuan yang Anda tentukan, gunakan [PutRecord](https://docs.aws.amazon.com/firehose/latest/APIReference/API_API_PutRecord.html)operasi setelah Anda membuat aliran pengiriman Firehose.

Sebelum mengirim data ke aliran pengiriman Firehose, gunakan `DescribeDeliveryStream` untuk melihat apakah aliran pengiriman aktif.

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```

## Menghapus aliran pengiriman Firehose
<a name="delete-a-akf-delivery-stream"></a>

Untuk menghapus aliran pengiriman Firehose, gunakan operasi. [DeleteDeliveryStreams](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DeleteDeliveryStreams.html) Ini juga menghapus data apa pun yang telah Anda kirim ke aliran pengiriman.

 **Impor** 

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

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$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";
}
```