小编Sju*_*sen的帖子

Google App Engine通过内部网络与Compute Engine进行通信

我们正在谷歌云中构建一个应用程序.我们使用App Engine作为前端,使用Compute Engine作为后端.在这些Compute Engine实例上,我正在运行一个接受某些"命令"消息的TCP服务器.计算引擎实例还连接到防火墙后面的互联网和负载均衡器,用于传入https流量.我想将TCP服务器绑定到本地IP地址,并且只允许App Engine实例(它们在同一个项目中)通过套接字api连接到TCP"命令"端口.

目前我们仅限制与Google Ip的传入连接

Compute Engine的文档最高审计机关如下:

每个实例都是单个网络的成员.网络执行的功能与路由器在家庭网络中执行的功能相同:它描述网络范围和网关IP地址,处理实例之间的通信,并充当网络外实例和呼叫者之间的网关.网络仅限于单个项目; 它无法跨越项目.不同网络中的实例之间的任何通信,即使在同一项目中,也必须通过外部IP地址.在API中,网络由网络对象表示.

是否可以建立安全的通信设置?也许有App Engine后端实例?

google-app-engine tcp google-compute-engine

18
推荐指数
2
解决办法
4856
查看次数

App Engine Socket API因子8比本机python慢

我正在使用AE套接字API,我做了以下测试:

class TestHandler(webapp.RequestHandler):

    def get(self):
        size = 1024 * 4
        start = datetime.datetime.now()
        for _ in range(10):
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.connect(('some.ip.here', 12345))
            sock.send('some dummy data')
            data = ''
            newData = 'dummy'
            while newData != '' and not newData.endswith('\r\n'):
                newData = sock.recv(size)
                #print newData
                data += newData
            print '.'
            sock.close()
        #print 'timespent:' + str(datetime.datetime.now() - start)
        logging.info('timespent:' + str(datetime.datetime.now() - start))
Run Code Online (Sandbox Code Playgroud)
  • App Engine实例:0:00:04.022290和0:00:04.209410
  • 本地Python环境:0:00:00.509000和0:00:00.511000

我注意到单个请求大约需要400毫秒到500毫秒后才开始进行一些测试.正在回答请求的服务器位于Google GCE实例上.该请求的处理时间平均为0:00:00.0005秒.因此大多数延迟与网络相关.我认为一个很好的响应时间将是100毫秒.如果我知道这需要一些硬件,我甚至可以用200ms.但我不认为除了一些安全措施之外应该有所不同.但这会禁止某些功能,而不是让它变慢.

谁能解释为什么差异如此之大?

python sockets google-app-engine

6
推荐指数
1
解决办法
526
查看次数

Ember Data嵌套模型

我在使用NDB的Google App Engine项目中使用EmberJs和Ember-Data.在数据库中,我有Host,Probe和Check实体.只要我的REST api按顺序排列,数据库模型并不重要,但为了清楚起见,这里是我的数据库类:

class Host(ndb.Model):
    hostName = ndb.StringProperty()

hostKey = ndb.Key('Host', 'SomeHostId')

class Probe(ndb.Model):
    checkName = ndb.StringProperty()

probeKey = ndb.Key('Host', 'SomeHostId', 'Probe', 'SomeProbeId')

class Check(ndb.Model):
    checkName = ndb.StringProperty()

checkKey = ndb.Key('Host', 'SomeHostId', 'Probe', 'SomeProbeId', 'Check', 'SomeCheckId')
Run Code Online (Sandbox Code Playgroud)

我添加了密钥以显示每个主机上都运行了一些探针,每个探针都执行一些检查.

  • 主办
    • 探测
      • 校验

在我的App.Js中,我定义了以下模型:

App.Host = DS.Model.extend({
    hostName: DS.attr('string')
    probes: DS.hasMany('probe',{async:true})
});

App.Probe = DS.Model.extend({
    host: DS.belongsTo('host'),
    probeName: DS.attr('string')
    checks: DS.hasMany('check',{async:true})
});

App.Check = DS.Model.extend({
    probe: DS.belongsTo('probe'),
    hostName: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)

我已经定义了以下路由器:

App.Router.map(function() {
    this.resource('hosts', function(){
        this.resource('host', { path:':host_id'}, function(){
            this.resource('probes', function(){
                this.resource('probe', …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

5
推荐指数
1
解决办法
4153
查看次数

python ssl ssl.SSLError: [SSL: UNSUPPORTED_PROTOCOL] 不支持的协议 (_ssl.c:590)

使用 python 2.7.10 或 2.7.9 时出现此错误,但适用于 python 2.7.6(尚未测试其他版本)

OpenSLL 版本:

openssl version -a
OpenSSL 1.0.1f 6 Jan 2014
built on: Thu Jun 11 15:30:15 UTC 2015
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)
compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"
Run Code Online (Sandbox Code Playgroud)

Python:

import ssl
print ssl.OPENSSL_VERSION_NUMBER
268439663L
print get_server_certificate(('someInternalIp', 443), ssl_version=ssl.PROTOCOL_SSLv23) …
Run Code Online (Sandbox Code Playgroud)

python ssl

3
推荐指数
1
解决办法
2万
查看次数

如何在计算引擎实例上运行google appengine docker镜像?

我有以下docker文件:

FROM gcr.io/google_appengine/python-compat
MAINTAINER Me@me.com

RUN apt-get update
RUN apt-get -y upgrade

ADD ./app/ /app
ADD app.yaml /app/

RUN mkdir -p /var/log/app_engine
Run Code Online (Sandbox Code Playgroud)

我创建日志目录,否则我收到以下错误

sudo docker run gcr.io/MY-PROJECT/ae-image
Traceback (most recent call last):
  File "/home/vmagent/python_vm_runtime/vmboot.py", line 133, in <module>
    run_file(__file__, globals())
  File "/home/vmagent/python_vm_runtime/vmboot.py", line 129, in run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/home/vmagent/python_vm_runtime/google/appengine/tools/vmboot.py", line 32, in <module>
    initialize.InitializeFileLogging()
  File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/initialize.py", line 92, in InitializeFileLogging
    APP_LOG_FILE, maxBytes=MAX_LOG_BYTES, backupCount=LOG_BACKUP_COUNT)
  File "/usr/lib/python2.7/logging/handlers.py", line 117, in __init__
    BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
  File "/usr/lib/python2.7/logging/handlers.py", line 64, in …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine google-compute-engine

2
推荐指数
1
解决办法
971
查看次数

如何在Google-plus中阅读我的圈子/流

这似乎应该很容易,但我无法在任何地方找到答案.谷歌/计算器/ API站点

我想从我自己的帐户中获取特定圈子中的所有帖子.到目前为止,我只能获得一个用户的帖子,但我希望有一个json包含来自特定圈子的所有帖子.

javascript google-plus

0
推荐指数
1
解决办法
1247
查看次数