【问题标题】:How to deploy a GAE project in flexible environment without billing?如何在不计费的情况下在灵活的环境中部署 GAE 项目?
【发布时间】:2017-01-20 12:47:10
【问题描述】:

我一直在使用 Flask 和其他第三方库开发一些 REST 服务,我想将其部署到灵活环境中的 GAE。我通常部署到 GAE 标准环境,但我想尝试新的灵活环境。目前我希望在不启用计费的情况下部署到灵活环境,Google 支持向我保证,可以在不启用计费的情况下通过 GAE 灵活环境进行部署。

在本地运行我的代码可以正常工作,并且有以下 yaml 文件:

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT whereismybus230.starter:app

runtime_config:
  python_version: 3

所以我通过谷歌云控制台网页创建了一个新项目(像往常一样),并在我的本地机器上创建了一个新的 gcloud 配置文件,因此我将它部署到这个新项目中。 然后我运行:

gcloud app deploy --verbosity=info

我知道正在构建一个 docker 映像,并且在某些时候它将被推送到一个计算引擎,但它在几分钟后失败了:

Successfully built sophiabus230 aniso8601 future docopt itsdangerous MarkupSafe
Installing collected packages: Werkzeug, click, MarkupSafe, Jinja2, itsdangerous, Flask, jsonschema, pytz, six, python-dateutil, aniso8601, flask-restplus, beautifulsoup4, future, sophiabus230, coverage, requests, docopt, coveralls
Successfully installed Flask-0.12 Jinja2-2.9.4 MarkupSafe-0.23 Werkzeug-0.11.15 aniso8601-1.2.0 beautifulsoup4-4.5.3 click-6.7 coverage-4.3.4 coveralls-1.1 docopt-0.6.2 flask-restplus-0.9.2 future-0.16.0 itsdangerous-0.24 jsonschema-2.5.1 python-dateutil-2.6.0 pytz-2016.10 requests-2.12.5 six-1.10.0 sophiabus230-0.4
 ---> 3e3438680079
Removing intermediate container bd9f8ccb6f4a
Step 8 : ADD . /app/
 ---> bde0915f6720
Removing intermediate container e3193eb4ef70
Step 9 : CMD gunicorn -b :$PORT whereismybus230.starter:app
 ---> Running in 022d38d769f8
 ---> 36893d0a549a
Removing intermediate container 022d38d769f8
Successfully built 36893d0a549a
PUSH
The push refers to a repository [us.gcr.io/whereismy230/appengine/default.20170120t131841]
e5f488ee94c5: Preparing
8d27ce27f03c: Preparing
3d5800d45c36: Preparing
06ba8a2a8ec3: Preparing
c0fb81dae3c6: Preparing
2e4eabdbeed3: Preparing
b5d474284f52: Preparing
c307273999be: Preparing
d73750730c30: Preparing
63bbaf04cf0b: Preparing
badb9b2d625b: Preparing
40c928fd4dcc: Preparing
dfcf8dbe47e1: Preparing
6d820e13990c: Preparing
2e4eabdbeed3: Waiting
b5d474284f52: Waiting
c307273999be: Waiting
d73750730c30: Waiting
63bbaf04cf0b: Waiting
badb9b2d625b: Waiting
40c928fd4dcc: Waiting
dfcf8dbe47e1: Waiting
6d820e13990c: Waiting
denied: Unable to create the repository, please check that you have access to do so.
The push refers to a repository [us.gcr.io/whereismy230/appengine/default.20170120t131841]
...
ERROR: (gcloud.app.deploy) Error Response: [2] Build failed; check build logs for details

使用 IAM 服务,我确保我的帐户是项目的所有者,甚至检查了所有权限。 由于柔性环境依赖于计算引擎 (VM),我尝试从网页中查看,它告诉我需要启用结算才能使用此功能。

我做错了吗? 谢谢!

【问题讨论】:

    标签: google-app-engine gcloud


    【解决方案1】:

    来自App Engine Pricing

    标准环境中的实例可以访问每日 由一组定义的免费提供的资源使用限制 的quotas。超出该级别,申请将产生费用 下面列出。为了控制您的申请成本,您可以设置一个 spending limit。要估算标准环境的成本, 使用定价计算器。

    Go to the pricing calculator

    对于柔性环境中的实例,服务和 API 是 价格如下所述。

    来自Flexible environment instances

    在 App Engine 柔性环境中运行的应用程序是 部署到您指定的虚拟机类型。这个表 总结各种计算的小时计费率 资源:

    US
    Resource  Unit    Unit cost
    vCPU  per core hour   $0.0526
    Memory    per GB hour     $0.0071
    Persistent disk   per GB per month    $0.0400
    

    与标准环境不同,弹性环境没有免费配额。这与您的观察一致,即开发人员控制台需要启用计费才能运行 GAE 弹性实例。

    如果不启用计费功能,您可能可以通过使用 @987654327 来部署您的应用(但实际上并没有为其启动 GAE 实例,因此不确定它的用处,因为您想尝试一下) @选项:

    --promote

    提升已部署的版本以接收所有流量。

    默认为真。更改当前的默认行为 环境,运行:

      $ gcloud config set app/promote_by_default false
    

    为此覆盖默认的promote_by_default 属性值 命令调用。使用--no-promote 禁用。

    附注:当您遇到问题时,您可能还想使用--verbosity=debug 来获取有关故障的更多相关信息。

    【讨论】:

    • 这个信息正是我要找的,谢谢你的链接!谷歌支持也证实了这一点。我最终为此使用了 Heroku。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2011-12-12
    相关资源
    最近更新 更多