GCP IoT デバイスに新しい構成を送信しようとしています。Base64 でエンコードされたバイナリ文字列の長さは約 15k バイトです。docsによると、GCP IoT デバイス構成のサイズ制限は 64kです。しかし、まだ 413 (要求エンティティが大きすぎます) エラーが発生します。私は何を間違っていますか?15k は、このようなエラーを生成するには非常に小さいようです。助けてくれてありがとう。
構成データを送信する JavaScript コードは次のとおりです。
sendDeviceConfig(deviceId, configPayload) {
const parentName = `projects/${this.projectId}/locations/${this.cloudRegion}`;
const registryName = `${parentName}/registries/${this.registryId}`;
const binaryData = Buffer.from(configPayload).toString('base64');
const request = {
name: `${registryName}/devices/${deviceId}`,
versionToUpdate: 0,
binaryData: binaryData,
};
return new Promise((resolve, reject)=>{
this.client.projects.locations.registries.devices.modifyCloudToDeviceConfig(
request,
(err) => {
if (err) {
this.logger.error('Could not update config:', deviceId);
reject(err);
} else {
resolve();
}
}
);
});
}
...そして、HTML 形式 (wtf?) のエラー応答の一部:
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 413 (Request Entity Too Large)!!1</title>
...
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>413.</b> <ins>That’s an error.</ins>
<p>Your client issued a request that was too large.