AWSにイベントを記録して監視できるphpワーカーがあります。残念ながら、送信しようとすると次のエラーが発生しました。
InvalidSequenceTokenException「https://logs.eu-west-1.amazonaws.com」で「PutLogEvents」の実行中にエラーが発生しました。AWS HTTPエラー:クライアントエラー:応答が
POST https://logs.eu-west-1.amazonaws.com
発生しました400 Bad Request
:{"__ type": "InvalidSequenceTokenException"、 "expectedSequenceToken": "999999999999990356407851919528174(切り捨てられました...)InvalidSequenceTokenException(クライアント):指定されたsequenceTokenが無効です。次に期待されるsequenceTokenは次のとおりです。 495599999999988500356407851919528174642-{"__ type": "InvalidSequenceTokenException"、 "expectedSequenceToken": "495573099999999900356407851919528174642"、 "message": "指定されたsequenceTokenが無効です。次に予想されるsequenceTokenは次のとおりです:495579999999900356407851919528174642 "}
これが私のコードです
$date = new DateTime();
$instance= = new CloudWatchLogsClient([
'region' => 'eu-west-1',
'version' => 'latest',
'credentials' => [
'key' => 'XXX',
'secret' => 'XXXX'
]
]);
$instance->putLogEvents([
'logGroupName' => "WorkerLog",
'logStreamName' => "log",
'logEvents' => [
[
'timestamp' => $date->getTimestamp(),
'message' => "test log"
]
]
]);
http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
リクエストにはシーケンストークンを含める必要があります。持っていない場合は、describeLogStreams(http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html)を使用してストリームシーケンスを取得する必要があります。
putLogEventsを呼び出すと、応答でnextTokenを取得します。また、他の誰かがストリームにプッシュしてnextTokenを無効にする場合に備えておく必要があります。(この場合、更新されたトークンを取得するには、ストリームを再度記述する必要があります)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加