小编Sum*_*uma的帖子

使用 IntelliJ IDEA 进行调试时如何将服务帐户凭据添加到 Google App Engine?

我正在开发一个使用 Google Cloud Storage 的 Google App Engine(标准环境)应用程序。到目前为止,我一直将App Engine API 用于 Cloud Storage,它使用 Datastore 为 Cloud Storage 提供本地模拟。由于这些 API 现在已经过时,我决定使用推荐的 API,但是我在本地服务器上运行时遇到了凭据问题(我已经在使用新的Cloud Code 插件,而不是旧的App Engine插件)。

我创建了一个服务帐户,并为其创建并下载了密钥。如果我将运行一个普通的 Java 应用程序,我将能够为 VM 指定环境变量,并且我可以提供必要的-DGOOGLE_APPLICATION_CREDENTIALS=xxxxx.json参数。云码提供的服务器好像没有办法提供环境变量,我只能提供VM选项,所以不知道怎么给它提供必要的环境,也不知道怎么把凭证传给它以其他方式。我让它工作的唯一方法是使用

gcloud auth application-default login

已将凭据保存在D:\Users\xxxx\AppData\Roaming\gcloud\application_default_credentials.json. 这有效,但任何时候我调试我的应用程序时,我都会收到以下警告:

com.google.auth.oauth2.DefaultCredentialsProvider warnAboutProblematicCredentials

警告:您的应用程序已使用来自 Google Cloud SDK 的最终用户凭据进行身份验证。我们建议大多数服务器应用程序改用服务帐户。如果您的应用程序继续使用来自 Cloud SDK 的最终用户凭据,您可能会收到“超出配额”或“API 未启用”错误。

我不确定这个警告有多严重,但对我来说听起来确实很可怕。

在我的应用程序中,我使用此代码(Scala,Java 将非常相似)使用凭据创建服务:

  val credentials = GoogleCredentials.getApplicationDefault
  val storage = StorageOptions.newBuilder().setCredentials(credentials).build().getService
Run Code Online (Sandbox Code Playgroud)

在本地 Google App Engine 服务器上运行时传递服务帐户凭据的正确方法是什么?

java google-app-engine google-cloud-platform google-cloud-iam

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

如何列出 Cloud Run 的非活跃版本?

这有点类似于如何检查最新的 Cloud Run 版本是否已准备好提供服务

\n

我想列出 Cloud Run 服务的非活动修订版本,以便我可以删除它们。我可以使用以下方式列出它们:

\n
gcloud run revisions list --region europe-west1 --service service-name\n
Run Code Online (Sandbox Code Playgroud)\n

清单如下所示:

\n
   REVISION                ACTIVE  SERVICE       DEPLOYED                 DEPLOYED BY\n\xe2\x9c\x94  xxxxx-server-00083-ban  yes     xxxxx-server  2022-12-22 18:13:50 UTC  xxxxx-server@***.iam.gserviceaccount.com\n\xe2\x9c\x94  xxxxx-server-00082-few          xxxxx-server  2022-12-22 18:09:27 UTC  xxxxx-server@***.iam.gserviceaccount.com\n\xe2\x9c\x94  xxxxx-server-00081-zex          xxxxx-server  2022-12-22 18:03:00 UTC  xxxxx-server@***.iam.gserviceaccount.com\n\xe2\x9c\x94  xxxxx-server-00080-bad          xxxxx-server  2022-12-22 18:02:02 UTC  xxxxx-server@***.iam.gserviceaccount.com\n
Run Code Online (Sandbox Code Playgroud)\n

现在我想只过滤那些没有的ACTIVE:yes。我尝试添加--filter=\'-active:*\',但似乎没有任何效果,并且收到警告:

\n
WARNING: The following filter keys were not present in any resource : active\n
Run Code Online (Sandbox Code Playgroud)\n

--format=JSON当我尝试使用或列出信息时--format=YAML,我对信息不知所措,其中包括列出所有过去的状态转换,例如:

\n
status:\n …
Run Code Online (Sandbox Code Playgroud)

gcloud google-cloud-run

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

用C++声明一个对象没有创建它?

这可能吗?例如,如果我写

Car myCar;
Run Code Online (Sandbox Code Playgroud)

然后调用不带Car参数的构造函数.如果只有构造函数接受参数,则会导致错误.

在Java中,我可以使用与上面完全相同的语句轻松声明一个对象并在以后创建它.

c++ constructor default-constructor

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

在c ++中修复static_cast <int>()的精度

# include <iostream>
using namespace std;

int main()
{
    double a;
    cin >> a;
    int b = (int) a*100;
    cout << b << endl;
}
Run Code Online (Sandbox Code Playgroud)

如果输入2.53,则给出b = 252

我知道这是一个精确的事情,但是如何在不使用比较的情况下修复它?

c++ floating-point precision

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

当第一个在预处理器指令中定义而第二个在C++中是常量时,如何连接2个字符串?

这就是我所拥有的:

#define STRING "string 1"

string string2 = STRING + "string3";
Run Code Online (Sandbox Code Playgroud)

这是错的.解决办法是什么?问题string2必须是不变的还是其他什么,为什么?

c c++ string concatenation string-concatenation

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

新char之后堆积腐败[strlen

目前正在研究一些代码,这些代码在Win XP上运行,在Win 7上运行在调试环境中.但是在使用堆损坏的版本中,它失败了.非常感谢您的帮助.

char *strr = NULL;
if (SomeValue!= NULL)
{
      while(SomePos != NULL)
    {
        CString strTemp; double SomeAmount; 

        strTemp.Format("%f",SomeAmount );

        strr = new char[strlen((LPCTSTR)strTemp + 1)];
        strcpy(strr,LPCTSTR(strTemp));

        if(strr)
        {
            strr = NULL;
            delete[] strr;
        }

     }
}
Run Code Online (Sandbox Code Playgroud)

看这个我可以弄清楚在删除char指针时遗漏了一些东西.

c++

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

在Scala中更改不可变变量

我有一个特征Usertest,我有一个不可变的变量name和一个可变的变量age.在声明我name用空字符串初始化时,我创建了Student一个带有变量nameStudent类扩展的构造函数的类Usertest.

现在我想在每次创建实例时更改name的值,Student但我不知道该怎么做.

我试过这样的:

trait Usertest {
  val name: String = ""
  var age: Int= 12

  def setage(setage: Int) = {
    age = setage
  }

   def getAge :Int = age
   def getName : String = name

}

class Student(name : String) extends Usertest

object Main extends App {
  val st = new Student("ahsen")
  var age = st.setage(23)
  println("name  : " st.name)
  println("age : …
Run Code Online (Sandbox Code Playgroud)

overriding scala

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

C二进制达到1.2G内存限制

我正在处理一个C程序,该程序从一个文件中读入,每行大约有60个字符,并通过在读取文件时请求更多内存来在内存中分配字符串.在每次malloc 请求之后,它会检查函数OOM()是否有请求为了更多的记忆成功.

我已经使用越来越大的输入文件测试了程序,并且 在程序运行时查看命令时内存使用率达到1.2G时或多或少地OOM()报告.这是在64位Linux机器上,有更多的内存可用.输出来自:"Out of memory"topfile /my/binary/program

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么它达到了1.2G的限制?我记得我的系统管理员曾经说某些二进制文件只能使用高达1.2G,这恰恰就是我在这里看到的.

当我qsub在保留50GB内存的同一64位Linux SGE网格的节点上运行相同的执行时,它会报告"Out of memory"以及以下SGE日志内存占用:

Max vmem         = 2.313G
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么程序达到这个内存限制?是否有任何编译标志我应该知道哪些可能导致/解决这个问题?

在下面找到当前的相关标志Makefile:

CC = gcc
CFLAGS = -Wall -O3 -funroll-loops -DNDEBUG -fomit-frame-pointer -std=gnu99 -msse2 -Wno-unused-function -Wno-unused-result
CFLAGSSFMT = -msse2 -DHAVE_SSE2 -O9 -finline-functions -fomit-frame-pointer \
-DNDEBUG -fno-strict-aliasing --param max-inline-insns-single=1800 -std=c99
LD = ld …
Run Code Online (Sandbox Code Playgroud)

c memory 64-bit memory-management out-of-memory

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