为什么我的 "gcloud beta run services replace" 命令失败了?

Why is my "gcloud beta run services replace" command failing?

我有这个YAML(方括号中的部分替换为正确的内容):

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: ty-platform
spec:
  template:
    spec:
      containers:
      - image: gcr.io/[project name]/endpoints-runtime-serverless:[site URL]-2020-03-20r8
        env:
          - name: ESPv2_ARGS
            value: ^++^--cors_preset=basic++--cors_allow_origin=[site]++--cors_allow_headers="Authorization"

我尝试用这个命令上传

gcloud beta run services replace service_replace.yaml --platform managed --region us-central1

(在已经使用 gcloud run deploy 成功部署之后)。

命令运行成功,但经测试发现替换失败。即,不会创建或更新 ESPv2_ARGS 变量。我可能做错了什么?

相关服务是 Cloud Endpoint 的 ESPv2 映像。

我尝试按原样添加您的 ESPv2_ARGS(使用现有的云 运行 服务而不是端点)并且服务的环境 更新。这似乎按预期工作。

服务的先前修订没有定义环境变量。

gcloud beta run services describe ${SERVICE} \
--project=${PROJECT} \
--platform=managed \
--region=${REGION} \
--format="yaml(spec.template.spec.containers[0].env)"

  null

gcloud beta run services replace service.yaml
--platform=managed \
--region=${REGION} \
--project=${PROJECT}

Deploying container to Cloud Run service [...] in project [...] region [...]
✓ Deploying... Done.                                                                                                                                                           
  ✓ Creating Revision...                                                                                                                                                       
  ✓ Routing traffic...                                                                                                                                                         
Done.

gcloud beta run services describe ${SERVICE} \
--project=${PROJECT} \
--platform=managed \
--region=${REGION} \
--format="yaml(spec.template.spec.containers[0].env)"

spec:
  template:
    spec:
      containers:
      - env:
        - name: ESPv2_ARGS
          value: ^++^--cors_preset=basic++--cors_allow_origin=[site]++--cors_allow_headers="Authorization"

使用:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: ...
spec:
  template:
    metadata:
      name: ...
    spec:
      containers:
      - image: ...
        env:
        - name: ESPv2_ARGS
          value: ^++^--cors_preset=basic++--cors_allow_origin=[site]++--cors_allow_headers="Authorization"

我无法证明此环境变量是否影响 ESP,但是替换命令似乎可以正常工作。