我在Google Cloud中部署了一個包含多個微服務的應用。對於其中之一,我希望使用推送隊列。我配置我的queue.yaml文件如下:在Google Cloud中部署推送隊列
queue:
- name: equeue
rate: 10/s
retry_parameters:
task_retry_limit: 1
task_age_limit: 2d
我旋轉了SDK和隊列工作正常,就像它應該。但後來我去用它推到我的谷歌雲應用:
gcloud app deploy --project=<projectname> --promote --stop-previous-version
的代碼都正確加載,但隊列永遠不會被創建。我從我的代碼獲得錯誤如下:
API error 1 (taskqueue: UNKNOWN_QUEUE)
當我看在控制檯上https://console.cloud.google.com/appengine/taskqueues,隊列尚未創建。
我讀過文檔,它似乎表明我所需要做的就是創建queue.yaml文件並部署應用程序(並且這對我來說已經適用了,儘管使用了舊版本的SDK)
萬一有幫助,下面是我在本地運行的組件:
Google Cloud SDK 164.0.0
app-engine-go
app-engine-python 1.9.57
bq 2.0.24
core 2017.07.25
gcloud
gsutil 4.27
謝謝! Dan
感謝。我嘗試將queue.yaml文件移動到我的默認服務,但它不起作用。但是當我嘗試gcloud deploy queues.yaml命令時,它確實如此。唯一的問題是我需要在服務的目錄中保留queue.yaml文件的副本,否則它在SDK中不起作用。我想知道爲什麼Google讓隊列以這種方式工作,而不是讓它們像其他所有東西一樣通過控制檯建立起來?無論如何,感謝您的幫助。 – Dan
您可以對文件進行對接以保持SDK的快樂。請參閱https://stackoverflow.com/questions/34110178/can-a-default-service-module-in-a-google-app-engine-app-be-a-sibling-of-a-non- de/34111170#34111170 –
控制檯驅動的配置相當糟糕:對自動化不友好,無法進行版本控制,在StackOverflow上獲得幫助的噩夢等等。 –