Google Cloud IoT - sendCommandToDevice - служба недоступна
sendCommandToDevice
конечная точка, кажется, недоступна. Я попытался отправить команду прямо из облачной консоли на странице устройства. В уведомлении внизу слева сказано: Command sent to device
, но инспектор по хрому показал ошибку 503. Время ошибки: 17:46:02 UTC Суббота, 27 октября 2018 г.
Запрос:
Request URL: https://cloudiot.clients6.google.com/v1/projects/<project-id>/locations/<location-name>/registries/<registry-name>/devices/<device-name>/:sendCommandToDevice?key=<removed>
Request Method: POST
Status Code: 503
Remote Address: 216.58.196.74:443
Referrer Policy: no-referrer-when-downgrade
Payload: {binaryData: "eyJ0ZXN0IjoxfQ==", subfolder: ""}
Отклик:
{
"error": {
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
}
Кроме того, дополнительная заметка, sendCommandToDevice
недоступен в клиентской библиотеке nodejs (34.0.0). Я должен был сделать обнаружение API, чтобы иметь доступный метод.
1 ответ
Вы все еще получаете 503? Я только что проверил это и смог успешно получать сообщения.
Кроме того, в связи с отсутствием функций Commands в клиентской библиотеке, Commands все еще находятся в бета-версии, и эти методы будут доступны в клиентской библиотеке после ее полного выпуска.
Это, вероятно, связано с
- ошибка в библиотеке узлов
- ошибка в конечной точке Google RPC
- Отсутствие тестирования со стороны Google
Проблема в том, что subfolder
ДОЛЖЕН быть указан, и НЕ ДОЛЖЕН быть пустой строкой.
Поскольку я использовал это в функции Firebase, я просто использую firebase
вложенная папка для любых отправляемых команд, которые не имеют определенной вложенной папки
const request = {
name: `${registryName}/devices/${deviceId}`,
binaryData: Buffer.from(JSON.stringify(commandMessage)).toString("base64"),
subfolder: 'firebase'
}
Вот функции deps:
"dependencies": {
"firebase-admin": "^6.4.0",
"firebase-functions": "^2.1.0",
"fs-extra": "^7.0.0",
"googleapis": "^36.0.0",
},