Как настроить amazon timestream на php?
Я нашел в документации к нему здесь. У меня установлен PHP SDK. Теперь, когда я просматриваю документы, там не так много подробностей о PHP. У меня есть следующие вопросы:
- Как я могу указать $client
$result = $client->createDatabase([ 'DatabaseName' => '<string>', // REQUIRED 'KmsKeyId' => '<string>', 'Tags' => [ [ 'Key' => '<string>', // REQUIRED 'Value' => '<string>', // REQUIRED ], // ... ], ]);
- Есть ли какие-нибудь хорошие документы или видео о потоке времени в 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 и записывать записи.