@ Ответ Дастина правильный, однако «статусные» сообщения являются косвенным результатом конфигурации Route
, поскольку эти вещи обновляются отдельно (и между ними может наблюдаться задержка в несколько секунд). В статусном сообщении все равно будет указано, что ревизия была выведена из ротации, если вы не против. 1004 *
Есть ли какая-либо команда или событие, на которые я могу подписаться на , убедитесь, что трафик c не указывает на старую ревизию ?
Вам нужно посмотреть на Route
объекты в API. Это Knative API (он доступен в Cloud Run), но в нем нет команды gcloud
: https://cloud.google.com/run/docs/reference/rest/v1/namespaces.routes
Например, предположим, что вы сделали 50% -50% трафик c разделен на вашу службу Cloud Run. Когда вы это сделаете, вы обнаружите, что ваш объект Service
(который вы можете увидеть в Cloud Console → Cloud Run → YAML tab) имеет следующее поле spec.traffic
:
spec:
traffic:
- revisionName: hello-00002-mob
percent: 50
- revisionName: hello-00001-vat
percent: 50
Это "желательно конфигурация ", но на самом деле она может не отражать статус окончательно. Изменение этого поля приведет к изменению go и обновлению объекта Route
- который определяет, как будет разделен c трафик.
Чтобы увидеть объект Route
под крышками (к сожалению, мне придется использовать curl здесь, потому что для этого нет команды gcloud
:)
TOKEN="$(gcloud auth print-access-token)"
curl -vH "Authorization: Bearer $TOKEN" \
https://us-central1-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/GCP_PROJECT/routes/SERVICE_NAME
Эта команда покажет вам результат:
"spec": {
"traffic": [
{
"revisionName": "hello-00002-mob",
"percent": 50
},
{
"revisionName": "hello-00001-vat",
"percent": 50
}
]
},
(который, как вы могли заметить, идентичен сервису spec.traffic
- потому что он скопирован оттуда), который может точно сказать вам, какие версии в настоящее время обслуживают трафик c для этой конкретной Услуги.