Firehose API 및 버전 3을 사용하여 전송 스트림 생성 AWS SDK for PHP - AWS SDK for PHP

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Firehose API 및 버전 3을 사용하여 전송 스트림 생성 AWS SDK for PHP

Amazon Data Firehose를 사용하면 Amazon Kinesis Data Streams, Amazon S3, 아마존 AWS 서비스 ( OpenSearch OpenSearch 서비스), Amazon Redshift를 비롯한 다른 서비스나 스플렁크에 실시간 데이터를 전송할 수 있습니다. 전송 스트림으로 데이터 생산자를 생성하여 데이터를 추가할 때마다 구성한 대상으로 데이터를 전송합니다.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

의 모든 예제 코드는 여기에서 확인할 수 GitHub 있습니다. AWS SDK for PHP

보안 인증 정보

예제 코드를 실행하기 전에 보안 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 기본 사용법에 설명된 대로 AWS SDK for PHP를 가져옵니다.

Amazon Data Firehose를 사용하는 방법에 대한 자세한 내용은 Amazon Kinesis Data Firehose 개발자 안내서를 참조하십시오.

Kinesis 데이터 스트림을 사용하여 전송 스트림 생성

기존 Kinesis 데이터 스트림에 데이터를 넣는 전송 스트림을 설정하려면 작업을 사용하십시오. CreateDeliveryStream

이를 통해 개발자는 기존 Kinesis 서비스를 Firehose로 마이그레이션할 수 있습니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

Amazon S3 버킷을 사용하여 전송 스트림 생성

기존 Amazon S3 버킷에 데이터를 넣는 전송 스트림을 설정하려면 CreateDeliveryStream작업을 사용하십시오.

대상 파라미터에서 설명한 대로 대상 파라미터를 제공합니다. 그런 다음 Amazon S3 대상에 Kinesis Data Firehose 액세스 권한 부여에 설명된 대로 Firehose에 Amazon S3 버킷에 대한 액세스 권한을 부여해야 합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

서비스를 사용하여 전송 스트림을 생성하십시오. OpenSearch

OpenSearch Service 클러스터에 데이터를 전송하는 Firehose 전송 스트림을 설정하려면 작업을 사용하세요. CreateDeliveryStream

대상 파라미터에서 설명한 대로 대상 파라미터를 제공합니다. Amazon ES 대상에 Kinesis Data Firehose 액세스 권한 부여에 설명된 대로 Firehose에 OpenSearch 서비스 클러스터에 대한 액세스 권한을 부여해야 합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

전송 스트림 검색

기존 Firehose 전송 스트림에 대한 세부 정보를 가져오려면 작업을 사용하세요. DescribeDeliveryStream

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

Kinesis Data Streams에 연결된 기존 전송 스트림 목록 표시

Kinesis Data Streams로 데이터를 보내는 기존 Firehose 전송 스트림을 모두 나열하려면 작업을 사용하십시오. ListDeliveryStreams

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

다른 AWS 서비스로 데이터를 전송하는 기존 전송 스트림의 목록 표시

Amazon S3, OpenSearch 서비스, Amazon Redshift 또는 Splunk로 데이터를 보내는 기존 Firehose 전송 스트림을 모두 나열하려면 작업을 사용하십시오. ListDeliveryStreams

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

기존 Firehose 전송 스트림으로 데이터 전송

Firehose 전송 스트림을 통해 지정된 대상으로 데이터를 보내려면 Firehose 전송 스트림을 만든 후 PutRecord작업을 사용하십시오.

Firehose 전송 스트림으로 데이터를 전송하기 전에 전송 스트림이 DescribeDeliveryStream 활성 상태인지 확인하는 데 사용합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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

Firehose 전송 스트림 삭제

Firehose 전송 스트림을 삭제하려면 작업을 사용합니다. DeleteDeliveryStreams 이 작업은 전송 스트림으로 전송한 데이터도 삭제합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

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