Prisma 容器中的 AWS ECS 错误 - 环境变量 PRISMA_CONFIG

AWS ECS error in prisma container - environment variable PRISMA_CONFIG

我是 AWS 的新手,我正在尝试使用 ECR 和 ECS 在 AWS 上部署我的本地 Web 应用程序,但是在 运行 集群时卡住了,它抛出了关于 PRISMA_CONFIG prisma 容器中的环境变量。

在我的本地环境中,我使用 docker 使用 nodejs、prisma 和 mongodb 构建应用程序,它工作正常。

现在在 ECS 上,我为 prisma 容器创建了一个任务定义,我尝试从我的本地 docker-compose.yml 文件复制 yml 配置以使其工作。

有一个名为 "ENVIRONMENT" 的字段,我已经在环境变量中输入了该值,它只是不工作并在集群 运行ning 时抛出错误,然后任务停止了。

yml为多行,但输入框只支持字符串

变量键是PRISMA_CONFIG 以下是我已经尝试过的值

| port: 4466\n databases:\n default:\n connector: mongo\n uri: mongodb://prisma:prisma@mongo\n
| \nport: 4466 \ndatabases: \ndefault: \nconnector: mongo \nuri: mongodb://prisma:prisma@mongo
|\nport: 4466\n databases:\n default:\n connector: mongo\n uri: mongodb://prisma:prisma@mongo
\nport: 4466\n databases:\n default:\n connector: mongo\n uri: mongodb://prisma:prisma@mongo
port: 4466\n databases:\n default:\n connector: mongo\n uri: mongodb://prisma:prisma@mongo\n

和错误

Exception in thread "main" java.lang.RuntimeException: Unable to load Prisma config: java.lang.RuntimeException: No valid Prisma config could be loaded.
expected a comment or a line break, but found p(112)
expected chomping or indentation indicators, but found \(92)

我预计所有容器都会 运行 没有错误,但实际结果是容器在 运行 宁了一分钟后停止。

请帮忙解决这个问题。 或者建议其他部署到 AWS 的方式?

非常感谢。

我一直在寻找类似的解决方案来加载没有多行字符串的 prisma 配置。

有些存储库在没有 prisma 配置的情况下单独加载 prisma 环境变量:

例如,查看此回购协议: https://github.com/akoenig/prisma-docker-compose/blob/master/.prisma.env

此处 akoenig 使用 env_file 使用以下环境变量。所以,我假设你可以单独传入这些环境变量来实现 prisma 正在寻找的东西。

# CONTENTS OF env_file

PORT=4466
SQL_CLIENT_HOST_CLIENT1=database
SQL_CLIENT_HOST_READONLY_CLIENT1=database
SQL_CLIENT_HOST=database
SQL_CLIENT_PORT=3306
SQL_CLIENT_USER=root
SQL_CLIENT_PASSWORD=prisma
SQL_CLIENT_CONNECTION_LIMIT=10
SQL_INTERNAL_HOST=database
SQL_INTERNAL_PORT=3306
SQL_INTERNAL_USER=root
SQL_INTERNAL_PASSWORD=prisma
SQL_INTERNAL_DATABASE=graphcool
CLUSTER_ADDRESS=http://prisma:4466
SQL_INTERNAL_CONNECTION_LIMIT=10
SCHEMA_MANAGER_SECRET=graphcool
SCHEMA_MANAGER_ENDPOINT=http://prisma:4466/cluster/schema
#CLUSTER_PUBLIC_KEY=
BUGSNAG_API_KEY=""
ENABLE_METRICS=0
JAVA_OPTS=-Xmx1G

这是针对 mySQL 数据库的。您需要对其进行调整以适合您的价值观。但理论上你应该能够将这些变量一个一个地传递到 AWS 的 GUI 中的单个变量中。

我也在 Prisma Slack 频道上问过这个问题,我在等着看他们是否有其他建议:https://prisma.slack.com/archives/CA491RJH0/p1569689413383000

告诉我进展如何。

不是这里的专家,但是,你是否设置了环境变量PRISMA_API_MANAGEMENT_SECRET你会在配置 Fargate 实例时定义秘密。

看看下面的文章

https://www.prisma.io/tutorials/deploy-prisma-to-aws-fargate-ct14