AWS Elastic Beanstalk Go文件权限问题



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

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

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

当我CCD_ 1。我收到以下错误消息返回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

在那里的代码中,他们还创建了一个用于日志记录的文件,但他们忽略了来自操作系统的错误。创建,因此文件永远不会被创建。

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

谢谢。

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

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

为了解决这个问题,在.ebextension中可以有os.Create("/var/log/golang/golang-server.log")0(或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将是您的自定义应用程序日志的位置。它可以是其他位置。这只是配置文件的一个示例。

最新更新