【问题标题】:AWS Elastic Beanstalk Go File Permission ProblemAWS Elastic Beanstalk Go 文件权限问题
【发布时间】:2020-11-10 17:31:49
【问题描述】:

我目前正在将 Go 应用程序部署到 AWS Elastic Beanstalk。

在应用程序中,我创建了一个用于记录的文件。

当应用程序部署时,我收到一个错误,具体取决于我所做的。

当我 os.Create("/var/log/golang/golang-server.log")。我收到以下错误消息open /var/log/golang/golang-server.log: no such file or directory

但是当我os.Create("/var/log/golang-server.log").我收到以下错误消息open /var/log/golang-server.log: permission denied

我目前正在部署他们在其网站上提供的示例 go.zip 应用程序,以确保我的实现/代码都不是问题。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/go-getstarted.html

在代码中,他们还创建了一个用于记录的文件,但他们忽略了来自 os.Create 的错误,因此该文件永远不会被创建。

我有一个 .ebextension 文件夹,如果我需要修复某些东西,我可以使用它。

谢谢。

【问题讨论】:

  • 你需要创建目录,并授予它权限(chmod +755:如果我没记错的话)。

标签: amazon-web-services go amazon-elastic-beanstalk


【解决方案1】:

您似乎正在从您的应用程序执行os.Create 命令。

您的应用程序在webapp 用户下执行,而/var/logroot 所有。随后您会收到这些错误。

要纠正这个问题,在您的.ebextension 中,您可以有commands(或files)部分,它将通过将其添加到/opt/elasticbeanstalk/config/private/logtasks/bundle 来为您的应用程序创建一个日志配置文件。

例如,您可以创建:

/opt/elasticbeanstalk/config/private/logtasks/bundle/my-go-app.conf

与内容

/var/app/current/log/*.log

/var/app/current/log/*.log 将是您的自定义应用程序日志的位置。它可以是其他位置。这只是配置文件的一个示例。

【讨论】:

  • 这行得通。在 os.Create 中,我做了“./golang-server.log”,在 .ebextensions 中,我添加了一个文件项,将其添加到 bundle/my-go-app.conf 中。然后我只是将 /var/app/current/golang-server.log 添加到 cloudwatch 导出项中。
  • 很高兴听到这个消息:-)
猜你喜欢
  • 2014-12-30
  • 2015-01-20
  • 2020-11-07
  • 2017-12-30
  • 2018-11-01
  • 2019-08-11
  • 2014-10-19
  • 2013-04-28
  • 2019-03-07
相关资源
最近更新 更多