小编Ale*_*don的帖子

具有特权的GCP SQL Postgres问题:无法使用生成的symfony db对postgres用户运行查询

我正在努力使用Google Cloud Platform的Cloud SQL组件解决此问题。我的技术栈包括将我的应用程序托管在Google Kubernetes Engine(GKE)部署中,使用Cloud SQL代理sidecar连接到Pod中的数据库。后端是一个Symfony项目。

我按照以下步骤创建和填充数据库(没有成功):

  1. 创建Cloud SQL Postgres实例
  2. 将代理添加到k8s容器以使用所有凭据连接到Cloud SQL实例,如GCP文档中所述
  3. 输入我的Symfony(phpfpm)窗格并运行命令php bin/console doctrine:schema:update --force以更新架构。查询在数据库中执行,因此创建了架构,依此类推。
  4. 我尝试与postgres用户通过GCP中的SQL控制台连接打开数据库,并尝试执行简单的select * from foo;查询。响应是Insufficient privilege: 7 ERROR: permission denied for relation

如何与postgres用户查询数据库中的数据?

编辑:

我有关于用户的这种情况:

     Role name     |                         Attributes                         |           Member of           
-------------------+------------------------------------------------------------+-------------------------------
 acando14          | Create role, Create DB                                     | {cloudsqlsuperuser,proxyuser}
 cloudsqladmin     | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 cloudsqlagent     | Create role, Create DB                                     | {cloudsqlsuperuser}
 cloudsqlreplica …
Run Code Online (Sandbox Code Playgroud)

php postgresql symfony google-cloud-sql google-cloud-platform

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

回调获取响应同步 kotlin

我试图在同步模式下获得回调的响应,因为我需要响应的值才能让所有应用程序正常工作,如果没有这个值(令牌),我将无法继续使用该应用程序。这是我在改造界面中的配套对象。我需要在创建客户端之前设置令牌。

我做错了什么?

编辑 :

我把这个日志作为你写的:

companion object {

    private var mToken: String = ""

    fun create(activity: Activity): MyPhoneInterface {
        Log.d("tokenMyPhoneInterface", activity.localClassName)
        getToken(activity)
        Log.d("tokenMyPhoneInterface", "client token $mToken")

        val client = OkHttpClient.Builder()
                .addInterceptor { chain ->
                    val request = chain.request().newBuilder()
                            .addHeader("Authorization", mToken).build()
                    chain.proceed(request)
                }.build()

        val retrofit = Retrofit.Builder()
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)
                .baseUrl(BuildConfig.API_HOST)
                .build()

        return retrofit.create(MyPhoneInterface::class.java)
    }

    private fun getToken(activity: Activity) {
        if(!activity.isFinishing && isJwtExpired(mToken)){
            val latch = CountDownLatch(1)
            (LoginManager(activity)).getToken(true, object : ServiceCallback<String> {
                override fun success(token: String) {
                    Log.d("tokenMyPhoneInterface", "token $token")
                    mToken …
Run Code Online (Sandbox Code Playgroud)

java android asynchronous callback kotlin

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

在 docker php 7.3 上启用 APCU CLI

我正在尝试在我的 docker 容器上启用 apcu cli 以运行我的测试。这是我的 docker 文件,我使用:

  • 基本的 php 图像
  • 安装作曲家
  • 安装 xdebug
  • 安装更多 docker 库
  • 安装apcu

当我尝试在这个 docker 中运行我的测试时,它由于 apcu 错误而失败。但是,在 prod 中,apcu 运行良好,因为它已启用但测试需要启用 cli。

FROM php:7.3-cli

ARG APCU_VERSION=5.1.11

RUN apt-get update  && apt-get -y install git zip libzip-dev wget \
zlib1g-dev unzip libpq-dev git-core libmcrypt-dev vim libfcgi0ldbl gnupg \
libfreetype6-dev libjpeg62-turbo-dev libpng-dev libicu-dev

#INSTALL COMPOSER
RUN echo "memory_limit = -1" > /usr/local/etc/php/conf.d/memory_limit.ini
RUN curl -sS http://getcomposer.org/installer | php -- --filename=composer && chmod a+x composer  && mv composer …
Run Code Online (Sandbox Code Playgroud)

php docker apcu

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

Kubernetes 中的 Redis - 连接被拒绝

我正在尝试部署一个redis pod,以允许我的暂存应用程序连接到它(以避免在暂存 ENV 中使用 Redis 托管服务)。

我正在使用Google Cloud Platform和GKE,因此托管 k8s 集群...

但是,当我尝试建立连接(仅从另一个 redis pod 进行测试)时,我收到此消息:

Could not connect to Redis at redis-cip.redis.svc.cluster.local:6379: Connection refused
Run Code Online (Sandbox Code Playgroud)

我用来进行测试的命令是这样的:

redis-cli -h redis-cip.redis.svc.cluster.local -p 6379 
Run Code Online (Sandbox Code Playgroud)

URL 由以下部分组成:

  • redis-cip:是我用来允许连接到我的 redis POD 的服务 ClusterIP
  • redis :是托管 redis POD 的命名空间

此外,正如 StackOverflow 上的一些问题中已经写的那样,我使用此 redis 配置:

protected-mode no
maxmemory 32mb
maxmemory-policy allkeys-lru
Run Code Online (Sandbox Code Playgroud)

附上完整的 k8s 映射:

配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: redis-configmap
  namespace: redis
data:
  redis.conf: |
    protected-mode no
    maxmemory 32mb
    maxmemory-policy allkeys-lru …
Run Code Online (Sandbox Code Playgroud)

redis kubernetes google-kubernetes-engine

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