代码之家  ›  专栏  ›  技术社区  ›  Vr33ni

带有firebase的cron作业-google cloud io错误

  •  1
  • Vr33ni  · 技术社区  · 6 年前

    我最近刚设置了firebase函数。在完成一个简单的HeloRoWord函数工作之后,我想在下面设置一个CRON作业 Google blog tutorial 是的。 我总是在这一步出错:

    gcloud app deploy app.yaml \ cron.yaml

    我收到以下错误消息:

    C:\Users\vreee\Firebase\functions-cron\appengine>gcloud app deploy app.yaml \ 
    cron.yaml
    WARNING: Automatic app detection is deprecated and will soon be removed. As 
    an alternative, create an app.yaml file yourself using the directions at 
    https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml (App Engine Flexible Environment) or 
    https://cloud.google.com/appengine/docs/standard/python/config/appref (App 
    Engine Standard Environment) under the tab for your language.
    Deployment to Google App Engine requires an app.yaml file. This
    command will run `gcloud beta app gen-config` to generate an app.yaml
    file for you in the current directory (if the current directory does
    not contain an App Engine service, please answer "no").
    
    Do you want to continue (Y/n)?  y
    
    This looks like a Python app.  If so, please enter the command to run
    the app in production (enter nothing if it's not a python app): :
    Writing [app.yaml] to [C:\].
    ERROR: gcloud crashed (IOError): [Errno 13] Permission denied: 
    u'C:\\app.yaml'
    
    If you would like to report this issue, please run the following command:
    gcloud feedback
    
    To check gcloud for common problems, please run the following command:
    gcloud info --run-diagnostics
    

    有人知道怎么解决这个问题吗?我搜索并将自己的电子邮件地址(不是服务帐户)设置为所有者,因此应该有权限。我只是注意到它试图创建一个 app.yaml 直接在下面归档 C:\\ 而不是 functions-cron 包含一个文件夹 应用程序yaml 以及 cron.yaml 文件。

    非常感谢你的帮助!!有关其他信息,我正在使用Windows..

    2 回复  |  直到 6 年前
        1
  •  1
  •   LundinCast Kapil Kaushal    6 年前

    似乎云sdk确实在尝试创建app.yaml文件,这意味着您的文件夹中没有app.yaml文件 C:\Users\vreee\Firebase\functions-cron\appengine 是的。根据您链接的教程,在运行deploy命令时,app.yaml和cron.yaml文件都应该在该目录中。

    所以你的选择是:

    • 如果您已经部署了一个应用程序,并且app.yaml文件没有更改(即它已经声明了cron作业的端点),则可以从 \functions-cron\appengine 仅上载cron.yaml文件的文件夹: gcloud app deploy cron.yaml 是的。
    • 否则,需要在同一个文件夹中同时拥有两个文件并运行命令。 gcloud app deploy app.yaml cron.yaml 是的。
        2
  •  0
  •   Ggrimaldo    6 年前

    为了使任何google应用程序引擎部署工作,都需要一个名为“app.yaml”的配置文件。官方有一篇文章 documentation 关于可能的参数和配置。

    此问题似乎与在云中写入的权限无关,而是与在本地计算机c:中写入的权限有关。我的建议是在部署之前创建文件,这样gcloud就不需要被授予在本地计算机中写入的管理权限。