如何在 docker-compose 中设置和调用'awslogs'?



我已经按照此处所述设置了带有CloudWatch的AWS EC2。

我的网络服务器是基于docker编写的。它如何配置CloudWatch和呼叫日志记录?注意:我没有在AWS中设置ECS。

因此,我发现使用python的watchtower并按如下方式配置我的docker-compose.yml非常容易:

web:

...
logging:
driver: "awslogs"
options:
awslogs-region: <region>
awslogs-group: <CloudWatch group>
awslogs-stream: <CloudWatch group stream> 

然后在您的py文件中,添加以下行:

logging.basicConfig(level=logging.INFO)
app = Flask(__name__)
try:
session = boto3.Session(
aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
region_name=os.environ['AWS_REGION']
)
handler = watchtower.CloudWatchLogHandler(
boto3_session=session,
log_group=os.environ.get('AWS_CLOUDWATCH_LOG_GROUP', "my-group"),
stream_name=os.environ.get('AWS_CLOUDWATCH_LOG_STREAM', "my-group-stream"),
create_log_group=False
)
app.logger.addHandler(handler)
except Exception as cerr:
app.logger.error("CloudWatch logging setup failed: %s", cerr)

然后你可以简单地添加这样一行:

app.logger.info("In root Page")

您可以在控制台的CloudWatch/LogGroups/my group/my group流中查看所有日志

相关内容

  • 没有找到相关文章

最新更新