连接功能到空云存储桶

时间:2019-09-04 20:21:05

标签: google-cloud-platform google-cloud-functions google-deployment-manager

我正在尝试使用GitHub上Google Deployment Manager示例中的以下信息。

empty_bucket_in_function.yaml

empty_bucket_cf.yaml

imports:
- path: empty_bucket_cf.jinja

resources:
- name: my-function
  type: empty_bucket_cf.jinja
  properties:
     project: <PROJECT_NAME>
     region: europe-west1
     entryPoint: handler
     runtime: nodejs8
     bucket: lskflsjfsj

empty_bucket_cf.jinja

{% set BUCKET = properties['bucket'] + '-bucket' %} resources:
#- type: cloudfunctions.v1.function
- type: gcp-types/cloudfunctions-v1:projects.locations.functions   name: my-function   properties:
    parent: projects/{{ properties['project'] }}/locations/{{ properties['region'] }}
    location: {{ properties['region'] }}
    function: my-{{ properties['bucket'] }}
    sourceArchiveUrl: gs://$(ref.{{ BUCKET }}.name)/my-function
    entryPoint: {{ properties['entryPoint'] }}
    runtime: {{ properties['runtime'] }}
    eventTrigger:
      resource: $(ref.my-topic.name)
      eventType: providers/cloud.pubsub/eventTypes/topic.publish
#- type: pubsub.v1.topic
- type: gcp-types/pubsub-v1:projects.topics   name: my-topic   properties:
    topic: {{ properties['bucket'] }}-topic
#- type: storage.v1.bucket
- type: gcp-types/storage-v1:buckets   name: {{ BUCKET }}   properties:
    predefinedAcl: projectPrivate
    projection: full
    location: US
    storageClass: STANDARD

使用Deployment Manager进行部署时,出现错误消息

testsetup has resource warnings
my-function: {"ResourceType":"gcp-types/cloudfunctions-v1:projects.locations.functions","ResourceErrorCode":"400","ResourceErrorMessage":"Failed to retrieve function source code"}
Deployment properties

任何想法,为什么这不是Google Cloud Platform GitHub存储库中的错误。

注意:有时它也会成功执行。

enter image description here

1 个答案:

答案 0 :(得分:1)

我并不是在发布此示例时Google想到的,但是它无法正常工作。如果您的存储桶为空,则该函数没有代码。但是,在部署功能时,将对代码进行编译/解析,检查入口点(存在,正确签名等),然后将其部署在环境中。

在这里,没有入口点,没有要编译/解析的代码,因此没有部署->这很正常,但是示例令人不安。您可以在存储库中打开一个问题。