Kinesis Data Streams API 및 AWS SDK for PHP 버전 3을 사용하여 데이터 스트림 생성 - AWS SDK for PHP

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

Kinesis Data Streams API 및 AWS SDK for PHP 버전 3을 사용하여 데이터 스트림 생성

Amazon Kinesis Data Streams를 사용하면 실시간 데이터를 전송할 수 있습니다. Kinesis Data Streams를 사용하여 데이터를 추가할 때마다 구성한 대상으로 데이터를 전송하는 데이터 생산자를 생성합니다.

자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서의 스트림 생성 및 관리를 참조하세요.

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

  • 를 사용하여 데이터 스트림을 생성합니다 CreateAlias.

  • 를 사용하여 단일 데이터 스트림에 대한 세부 정보를 가져옵니다 DescribeStream.

  • 를 사용하여 기존 데이터 스트림을 ListStreams나열합니다.

  • 를 사용하여 기존 데이터 스트림으로 데이터를 PutRecord전송합니다.

  • 를 사용하여 데이터 스트림을 삭제합니다 DeleteStream.

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

보안 인증 정보

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

Amazon Kinesis 개발자 안내서 사용에 대한 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서를 참조하세요.

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

다음 코드 예제를 사용하여 Kinesis에서 처리할 정보를 전송할 수 있는 Kinesis 데이터 스트림을 설정합니다. Amazon Kinesis 개발자 안내서에서 데이터 스트림 생성 및 업데이트에 대해 자세히 알아보세요.

Kinesis 데이터 스트림을 생성하려면 작업을 사용하십시오. CreateStream

가져오기

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

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $shardCount = 2; $name = "my_stream_name"; try { $result = $kinesisClient->createStream([ 'ShardCount' => $shardCount, 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

데이터 스트림 검색

다음 코드 예제를 사용하여 기존 데이터 스트림에 대한 세부 정보를 확인할 수 있습니다. 기본적으로 지정한 Kinesis 데이터 스트림에 연결된 처음 10개 샤드에 대한 정보가 반환됩니다. Kinesis 데이터 스트림에 쓰기 전에 응답의 StreamStatus를 확인하세요.

지정된 Kinesis 데이터 스트림에 대한 세부 정보를 검색하려면 작업을 사용하십시오. DescribeStream

가져오기

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

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->describeStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Kinesis에 연결된 기존 데이터 스트림의 목록 표시

선택한 AWS 리전에서 해당 AWS 계정 계정의 처음 10개 데이터 스트림의 목록을 표시합니다. 반환된 `HasMoreStreams를 사용하여 계정에 더 많은 스트림이 연결되었는지를 확인합니다.

Kinesis 데이터 스트림을 나열하려면 작업을 사용하십시오. ListStreams

가져오기

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

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); try { $result = $kinesisClient->listStreams(); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

기존 데이터 스트림에 데이터 전송

데이터 스트림을 생성한 후 다음 예제를 사용하여 데이터를 전송합니다. 데이터를 전송하기 전에 DescribeStream을 사용하여 데이터의 StreamStatus가 활성인지 여부를 확인합니다.

Kinesis 데이터 스트림에 단일 데이터 레코드를 쓰려면 작업을 사용하십시오. PutRecord Kinesis 데이터 스트림에 최대 500개의 레코드를 쓰려면 작업을 사용하십시오. PutRecords

가져오기

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

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-1' ]); $name = "my_stream_name"; $content = '{"ticker_symbol":"QXZ", "sector":"HEALTHCARE", "change":-0.05, "price":84.51}'; $groupID = "input to a hash function that maps the partition key (and associated data) to a specific shard"; try { $result = $kinesisClient->PutRecord([ 'Data' => $content, 'StreamName' => $name, 'PartitionKey' => $groupID ]); print("<p>ShardID = " . $result["ShardId"] . "</p>"); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

데이터 스트림 삭제

이 예제는 데이터 스트림을 삭제하는 방법을 보여줍니다. 데이터를 삭제하면 데이터 스트림으로 전송한 데이터도 삭제됩니다. 활성 Kinesis 데이터 스트림은 스트림 삭제가 완료될 때까지 DELETING 상태로 전환됩니다. DELETING 상태에서는 스트림에서 데이터 처리를 계속합니다.

Kinesis 데이터 스트림을 삭제하려면 작업을 사용하십시오. DeleteStream

가져오기

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

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->deleteStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }