Как настроить amazon timestream на php?

Я нашел в документации к нему здесь. У меня установлен PHP SDK. Теперь, когда я просматриваю документы, там не так много подробностей о PHP. У меня есть следующие вопросы:

  1. Как я могу указать $client
$result = $client->createDatabase([
    'DatabaseName' => '<string>', // REQUIRED
    'KmsKeyId' => '<string>',
    'Tags' => [
        [
            'Key' => '<string>', // REQUIRED
            'Value' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);
  1. Есть ли какие-нибудь хорошие документы или видео о потоке времени в PHP, откуда я могу получить некоторую помощь.

3 ответа

Во всяком случае, документация кажется мне скудной и немного вводящей в заблуждение. Вот как я это сделал для клиента записи (при условии, что SDK установлен).

      //Create the client
$client = new \Aws\TimestreamWrite\TimestreamWriteClient([    
    'version' => 'latest',
    'region' => 'eu-west-1',
    'credentials' => new \Aws\Credentials\Credentials('***KEY***', '***SECRET***')
    ]);

Обратите внимание, что «конечная точка» не указана, как я видел в некоторых примерах. Кажется, есть некоторая вводящая в заблуждение документация о том, какой должна быть конечная точка для любого региона. SDK творит чудеса и создает подходящую конечную точку; предоставление конкретной конечной точки не сработало для меня.

      $result = $client->writeRecords(
    [
        'DatabaseName' => 'testDB',
        'TableName' => 'history',
        'Records' =>
            [
                [
                    'Dimensions' => [
                        [
                            'DimensionValueType' => 'VARCHAR',
                            'Name' => 'Server', 
                            'Value' => 'VM01', 
                         ],    
                     ],
                     'MeasureName' => 'CPU_utilization',
                     'MeasureValue' => '1.21',
                     'MeasureValueType' => 'DOUBLE',
                     'Time' => strval(time()),
                     'TimeUnit'  =>  'SECONDS',    
                 ]
             ]
         ]
     );

Кажется, это минимальный набор вещей, необходимых для успешной записи записи в Timestream. Приведенный выше код записывает одну запись с одним измерением, в данном случае «Имя» «Сервера», записывая использование его ЦП во время ().

Примечание:

  • Требуется время, хотя в документации указано, что это необязательно.
  • Время должно быть строкой.

Есть два класса клиентов. Один для письма и один для чтения.

TimestreamWriteClient

https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.TimestreamWrite.TimestreamWriteClient.html

и

TimestreamQueryClient

https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.TimestreamQuery.TimestreamQueryClient.html

Вы можете использовать функции createTimestreamQuery и createTimestreamWrite для объекта $sdk для создания экземпляров этих классов.

Пример клиента Timestream и запроса ниже.

      // Create client
$client = new \Aws\TimestreamQuery\TimestreamQueryClient([    
    'version' => 'latest',
    'region' => AWS_REGION,  /* eg: eu-west-1 */
    'endpoint' => AWS_TIMESTREAM_ENDPOINT, /* eg: https://query-cell3.timestream.eu-west-1.amazonaws.com */
    'credentials' => new \Aws\Credentials\Credentials(AWS_KEY, AWS_SECRET)
]);

// Perform a basic query with the client
$client->query([
    'QueryString' => 'select * from "db_timestream"."tbl_usage_logs"', 
    'ValidateOnly' => true,
]);

Если вы получаете предупреждение о конечной точке, например «Конечная точка, необходимая для этой службы, в настоящее время не может быть получена»

Вы можете найти конечную точку с помощью команды AWS CLI,

      aws timestream-query describe-endpoints --region eu-west-1

Пример ответа:

      {
    "Endpoints": [
        {
            "Address": "query-cell3.timestream.eu-west-1.amazonaws.com",
            "CachePeriodInMinutes": 1440
        }
    ]
}

Аналогичным образом можно создать TimestreamWriteClient и записывать записи.

Другие вопросы по тегам