0

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.

4

2 に答える 2