我在Google App Engine Flexible Environment中运行了一个dotnet core 2.0应用程序.在同一个Google项目中,我有一个Cloud SQL - MySQL数据库.在Cloud SQL Instance详细信息页面的"授权"选项卡下,它指出
此项目中的应用程序:全部授权.
但是,除非我将0.0.0.0/0路由添加到授权网络部分,否则我无法从我的应用程序访问数据库.
如何在不向全世界打开数据库的情况下为我的应用程序数据库访问提供什么?
来自Jeffery Rennie的更新2018-05-21(已接受答复)
App Engine现在支持使用端口号而不是unix域套接字连接到Cloud SQL实例.所以现在,您可以添加以下内容app.yaml:
beta_settings:
cloud_sql_instances: "your-project-id:us-central1:instance-name=tcp:5432"
Run Code Online (Sandbox Code Playgroud)
并Host=cloudsql在appsettings.json中的连接字符串中指定:
"ConnectionString": "Uid=aspnetuser;Pwd=;Host=cloudsql;Database=visitors"
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,端口是5432,这是PostgreSQL数据库的默认端口.对于MySQL数据库,请使用端口3306.
可以在此处找到有关部署到App Engine的说明的完整示例:
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/appengine/flexible/CloudSql
google-app-engine google-cloud-sql google-cloud-platform .net-core app-engine-flexible
我已经在StackOverflow上阅读了几个类似的问题,但还没有找到解决这个问题的方法.
我正在通过HTTPPost将一个blob从Android上传到App Engine的Blobstore,再到Blobstore服务生成的上传URL.我希望能够使用此请求发送一些文本元数据来标识此blob.我想在上传blob后调用的上传处理程序servlet中检索此信息以及blob键.
问题是blob是使用多部分编码上传的,App Engine不支持Servlet v3.0标准,所以我不能使用req.getPart()来获取文本部分.(blob本身由Blobstore服务返回,因此已经为我们解析了部分请求.)
如何通过传递一个文本参数以及上传到Blobstore的文件并在上传blob后调用的servlet中检索它来解决此问题?
非常感谢你的帮助!相当坚持这一个!
以下是我在Android上用于HttpPost的代码:
File file = new File(filePath);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder
.create();
entityBuilder.addBinaryBody("file", file);
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(blobUploadURL);
httpPost.setEntity(entityBuilder.build());
try {
HttpResponse response = httpClient.execute(httpPost);
statusCode = response.getStatusLine().getStatusCode();
}
Run Code Online (Sandbox Code Playgroud)
更新(2014年12月8日):
在为HttpPost请求构建multipart-entity之前,我在实体构建器中添加了一个text-body,如下所示:
String param="value";
entityBuilder.addTextBody("param", param);
Run Code Online (Sandbox Code Playgroud)
对于在blob上传后处理Blobstore回调的servlet,我使用Google描述的方法在本教程中解析App Engine上的HttpPost请求,如下所示:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String paramNames="default";
try {
ServletFileUpload upload=new ServletFileUpload();
FileItemIterator iterator=upload.getItemIterator(req);
while(iterator.hasNext()){
FileItemStream item=iterator.next();
InputStream stream=item.openStream();
if(item.isFormField()){
paramNames+=item.getFieldName() + …Run Code Online (Sandbox Code Playgroud) java google-app-engine android google-cloud-datastore google-cloud-platform
我正在将我的Nodejs示例应用程序部署到Google App Engine Flexibleenv,当我使用google应用程序引擎URL时,appspot.com我会花费大约11秒来发送我的响应mobile data,但其他API正在以milisecs发送响应.
此外,时间延迟只发生在我打开我的Android应用程序并在所有请求正常时间之后向服务器发送请求时,当我再次打开应用程序并向服务器发送请求时再次出现延迟.
编辑 - 我发现了
这可能是在您的应用程序仍在启动或预热实例以服务请求时引起的,并且可以称为加载延迟.为了避免这种情况,您可以实现健康状况检查处理程序,如准备检查,以便您的应用程序只在准备就绪时才会收到流量
这就是为什么我在我的日志中readiness检查了有时在周围1 sec
有时进行检查的原因200 ms
任何人都可以告诉我在预热实例时有什么不对,因为我不认为冷启动时间会导致这个问题.
编辑2
我也尝试设置,min_num_instances: 2以便一旦加载至少我的2个实例将再次无法启动,但事情是延迟再次相同.
编辑3
runtime: nodejs
#vm: true
env: flex
automatic_scaling:
min_num_instances: 2
max_num_instances: 3
Run Code Online (Sandbox Code Playgroud)
编辑4
我注意到一个奇怪的行为,当我使用此应用程序Packet Capture捕获流量,然后所有https请求(如果我没有启用SSL代理)和所有Http请求正在milisecs执行而不使用此应用程序所有Http/Https请求正在延迟11-16秒.
我不知道怎么样,但这里有任何证书问题吗?
编辑5
下面我已经连接了Network Profiler,延迟时间是15秒
请帮忙
首先,感谢Google提供全文搜索支持.
如何备份存储在全文搜索数据存储区中的文档?
我可以用appcfg.py download_data吗?
google-app-engine full-text-search gae-search google-cloud-datastore google-cloud-platform
因此,我们正在GCE实例上运行的Google云上构建RESTful服务.该服务将在内部使用,即Web服务器.我正在考虑使用Oauth来保护这项服务.
而不是维护我们自己的消费者密钥/秘密数据库,是否可以利用Google身份验证已经提供的内容?所以我想象如下:
我在谷歌云文档中找不到这样的东西,以为我把它扔出去看看SO知道更好:)
谢谢!
google-api google-openid google-cloud-endpoints google-oauth google-cloud-platform
我尝试使用JDO从端点v1迁移到谷歌云项目到v2.我已经按照迁移指南和一些解决方案来尝试使数据核心插件增强我的类,并将它们上传到谷歌云,但没有运气.
我将发布build.gradle,然后在客户端尝试连接到端点时返回服务器错误,这是一个NoClassFound错误.
的build.gradle:
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
// App Engine Gradle plugin
classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3'
// Endpoints Frameworks Gradle plugin
classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2'
}
}
repositories {
mavenCentral();
jcenter()
}
apply plugin: 'java'
apply plugin: 'war'
// [START apply_plugins]
apply plugin: 'com.google.cloud.tools.appengine'
apply plugin: 'com.google.cloud.tools.endpoints-framework-server'
// [END apply_plugins]
dependencies {
compile ('com.google.endpoints:endpoints-framework:2.0.8') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
compile 'javax.servlet:servlet-api:2.5'
compile 'com.ganyo:gcm-server:1.0.2'
compile 'javax.jdo:jdo-api:3.0.1'
compile 'org.datanucleus:datanucleus-core:3.1.3'
compile 'org.datanucleus:datanucleus-api-jdo:3.1.3'
compile 'org.datanucleus:datanucleus-accessplatform-jdo-rdbms:4.1.1'
compile 'com.google.appengine.orm:datanucleus-appengine:2.1.2'
compile 'com.google.code.gson:gson:2.2.4'
compile 'org.apache.commons:commons-lang3:3.5' …Run Code Online (Sandbox Code Playgroud) java google-app-engine android google-cloud-storage google-cloud-platform
我正在尝试使用谷歌云语音 api 将音频剪辑 [.flac 格式] 转换为文本。我正在使用 python 客户端库来发出请求,并在 GCP 上有一个带有平面目录结构的存储桶,用于存储音频文件并发出异步请求。下面是发出请求的python代码
from google.cloud import storage
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
import json
def AudioAnalyze(bucket_name):
storage_client = storage.Client()
speech_client = speech.SpeechClient()
bucket = storage_client.get_bucket(bucket_name)
bucket_contents = bucket.list_blobs()
urls = []
audio_content=[]
for i in bucket_contents:
urls.append("gs://"+i.bucket.name+"/"+i.public_url.split("/")[-1])
for gcs_uri in urls:
audio = types.RecognitionAudio(uri=gcs_uri)
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
sample_rate_hertz=44100,
language_code='en-US')
operation = speech_client.long_running_recognize(config,audio)
print(gcs_uri)
print('Waiting for operation to complete...')
response = operation.result(timeout=450)
speech2text=[]
for result in …Run Code Online (Sandbox Code Playgroud) python google-app-engine google-cloud-storage google-cloud-platform google-speech-api
我想在Google Cloud上托管一些html文件,想知道是否可以做到这一点,而无需添加自定义域...
借助Cloudflare或AWS,这是可能的...
html google-app-engine google-cloud-storage google-cloud-datastore google-cloud-platform
我想在现有项目中以Native模式创建Firestore.我在Cloud Datastore中没有任何数据,但它阻止了我,说
此项目使用其他数据库服务您当前的项目设置为在数据存储模式下使用Cloud Datastore或Cloud Firestore.您可以从Cloud Datastore控制台访问此项目的数据.
通过https://console.cloud.google.com/firestore/ 和
无法为此项目启用Firestore目前,在已使用Cloud Datastore或App Engine的项目中无法启用Firestore
通过https://console.firebase.google.com/时
我已经尝试过对数据存储区的写入启用和禁用
我只是想Cloud Datastore从我的项目中彻底清除产品.
google-app-engine google-cloud-datastore google-cloud-platform google-cloud-firestore
android ×3
java ×2
.net-core ×1
gae-search ×1
google-api ×1
google-oauth ×1
html ×1
laravel-5 ×1
node.js ×1
php ×1
python ×1