ошибка gcp cli = (gcloud.logging.write) нераспознанные аргументы

Я пишу журналы в журналах gcp, используя следующую команду:

gcloud logging write my-test-log '{ "ServiceName": "$Service1", "SubsystemName": "$subsystem1") --payload-type=json

это дает ошибку ниже:

(gcloud.logging.write) unrecognized arguments.

Пожалуйста, предложите


person Ravi Tomar    schedule 26.11.2020    source источник
comment
Я полагаю, что вам не хватает ' в конце вашего сообщения. Должно быть gcloud logging write my-test-log '{ "ServiceName": "$Service1", "SubsystemName": "$subsystem1"}' --payload-type=json   -  person LundinCast    schedule 26.11.2020
comment
обратите внимание на }, а не на )   -  person LundinCast    schedule 26.11.2020
comment
я могу получить запись в журнале, но значение переменной оболочки не приходит, оно приходит, поскольку оно похоже на $Service1 и $subsystem1, а не на определенные значения. Это моя команда ---> gcloud logging write my-test-log '{ServiceName: $Service1, SubsystemName: $subsystem1)' --payload-type=json, пожалуйста, помогите мне   -  person Ravi Tomar    schedule 30.11.2020


Ответы (2)


Вы получаете эту ошибку, потому что у вас есть некоторые синтаксические ошибки.

Как сказал LundinCast, правильная команда должна быть:

gcloud logging write my-test-log '{ "ServiceName": "$Service1", "SubsystemName": "$subsystem1"}' --payload-type=json

Вы получите только следующий вывод:

Created log entry.

Дополнительную информацию см. в следующей документации: запись журнала gcloud

И вы можете проверить, работает ли он, перечислив журналы вашего проекта:

gcloud logging logs list 

NAME
projects/<<PROJECT-ID>>/logs/my-test-log

или чтение записи журнала:

gcloud logging read my-test-log

---
insertId: 1abcd235657fghi
jsonPayload:
  ServiceName: $Service1
  SubsystemName: $subsystem1
logName: projects/<<PROJECT-ID>>/logs/my-test-log
receiveTimestamp: '2020-11-26T21:10:25.757859880Z'
resource:
  labels:
    project_id: <<PROJECT-ID>>
  type: global
timestamp: '2020-11-26T21:10:25.757859880Z'

Изменить 1

Я нашел проблему в своем первоначальном ответе. Чтобы получить значение переменной в формате json, необходимо добавить "'", поэтому команда должна быть примерно такой:

gcloud logging write --payload-type=json my-test-log '{ "message": "'"$variable"'" , "weather": "partly cloudy"}'

Где содержимое $variable равно my-variable-content

insertId: 1y7abcdefghijk
jsonPayload:
  message: my-variable-content
  weather: partly cloudy
logName: projects/<<PROJECT-ID>>/logs/my-test-log
receiveTimestamp: '2020-12-04T14:03:45.850928566Z'
resource:
  labels:
    project_id: <<PROJECT-ID>>
  type: global
timestamp: '2020-12-04T14:03:45.850928566Z'
person Jose Luis Delgadillo    schedule 26.11.2020
comment
я могу получить запись в журнале, но значение переменной оболочки не приходит, оно приходит, поскольку оно похоже на $Service1 и $subsystem1, а не на определенные значения. Это моя команда ---> gcloud logging write my-test-log '{ServiceName: $Service1, SubsystemName: $subsystem1)' --payload-type=json, пожалуйста, помогите мне - person Ravi Tomar; 30.11.2020
comment
@RaviTomar Я отредактировал свой первоначальный ответ, я нашел то, чего не хватало. - person Jose Luis Delgadillo; 04.12.2020
comment
@RaviTomar, пожалуйста, дайте мне знать, поможет ли вам мой ответ, и если вы найдете мой ответ полезным, рассмотрите возможность его принятия / голосования, спасибо - person Jose Luis Delgadillo; 07.12.2020

Спасибо, что поделились правильным синтаксисом, все работает нормально. Теперь мне нужно показать значение, подобное 500, которое я регистрирую в журнале gcloud через скрипт, как вы упоминали выше. мне нужно показать его на панели инструментов на основе другого параметра, такого как здесь, на основе сообщения и нужно ли параметру отображать это третье значение на панели инструментов GCP.

person Ravi Tomar    schedule 09.12.2020
comment
Я рад узнать, что ответ был полезен, чтобы помочь сообществу в будущем, не могли бы вы принять или поддержать этот ответ? С другой стороны, этот другой вопрос должен быть в другом потоке, а не как ответ на ваш первоначальный вопрос, а также просто как напоминание, посмотрите здесь stackoverflow.com/help/someone-answers - person Jose Luis Delgadillo; 10.12.2020