Google cloud platform 无法为主题创建订阅
我正在尝试谷歌部署管理器 我已经创建了一个YAML文件,我正在其中创建一个主题和该主题的推送订阅Google cloud platform 无法为主题创建订阅,google-cloud-platform,google-deployment-manager,Google Cloud Platform,Google Deployment Manager,我正在尝试谷歌部署管理器 我已经创建了一个YAML文件,我正在其中创建一个主题和该主题的推送订阅 resources: - name: pubsub-topic type: gcp-types/pubsub-v1:projects.topics properties: topic: "topic-01" - name: pubsub-sub type: gcp-types/pubsub-v1:projects.subscriptions pro
resources:
- name: pubsub-topic
type: gcp-types/pubsub-v1:projects.topics
properties:
topic: "topic-01"
- name: pubsub-sub
type: gcp-types/pubsub-v1:projects.subscriptions
properties:
subscription: "gcf-01"
topic: "projects/my-project/topics/topic-01"
pushConfig:
pushEndpoint: "https://us-central1-my-project.cloudfunctions.net/helloWorld/"
ackDeadlineSeconds: 600
expirationPeriod:
当我运行命令时
cloud deployment-manager deployments create google-pub-sub --config C:\Development\GCP\DeploymentManager.yaml
gcloud deployment-manager deployments update google-pub-sub --config C:\Development\GCP\DeploymentManager.yaml
我得到以下错误
部署的指纹为xxxxxxxxxxxx==正在等待
为了创造
[操作-xxxxxxxx-xxxxxx-xxxx-xxxx]…失败。
错误:(gcloud.deployment manager.deployments.create)中的错误
操作[操作-xxxxx-xxxx-xxxx-xxxx]:
错误:
-代码:RESOURCE\u错误位置:/deployments/google pub sub/resources/pubsub消息:
“{”ResourceType:“gcp types/pubsub-v1:项目.订阅”,“ResourceErrorCode:“404”,“ResourceErrorMessage:{”code:“404”,“message:“Resource”
未找到(资源=主题-01)。“,“状态”:“未找到”,“详细信息”:[],“状态消息”:“未找到”
找到“,”请求路径“:”,“httpMethod:”放置“}}”
现在如果我运行命令
cloud deployment-manager deployments create google-pub-sub --config C:\Development\GCP\DeploymentManager.yaml
gcloud deployment-manager deployments update google-pub-sub --config C:\Development\GCP\DeploymentManager.yaml
它起作用了。这是否意味着操作不是连续的,并且系统正在尝试在创建主题之前创建订阅
此外,我仍然无法将ExpirationPeriod设置为Never。如果有人知道,一定要让我知道
谢谢 我通过使用YAML文件中的引用解决了第一个问题,因此更改后的文件看起来像
resources:
- name: pubsub-topic
type: gcp-types/pubsub-v1:projects.topics
properties:
topic: "topic-01"
- name: pubsub-sub
type: gcp-types/pubsub-v1:projects.subscriptions
properties:
subscription: "gcf-01"
topic: $(ref.pubsub-topic.name)
pushConfig:
pushEndpoint: "https://us-central1-my-project.cloudfunctions.net/helloWorld/"
ackDeadlineSeconds: 600
expirationPolicy: {}
据我所知,Deployment Manager属性引用与API引用匹配。如果您选中它,它代表
expirationPolicy
对象,带有ttl
content@manasouza谢谢你的回复。我可以使用ttl设置过期期限,但我想将其设置为永不过期。如果我将ttl保留为空,则会导致错误,如果我将其设置为“从不”,则会失败,如果我只是删除它,则也会失败。如果我只指定expirationPolicy而不指定ttl,则会出现以下错误-code:CONDITION\u NOT\u MET location:/deployments/google pub sub/resources/ct pubsub orders sub->$。属性消息:“/expirationPolicy”:域:验证;关键词:类型;消息:实例不匹配任何允许的基元类型;允许:[“对象”];发现:“null”
根据链接,如果未设置ttl,则关联的资源永远不会过期,但这似乎不起作用。