【发布时间】:2019-09-10 08:01:51
【问题描述】:
我有一个非常简单的 Cloudformation 脚本,它只是尝试创建 CloudWatch LogGroup 和关联的 LogStream -
AWSTemplateFormatVersion: '2010-09-09'
Description: Hello World
Parameters:
AppName:
Type: String
EnvName:
Type: String
Resources:
AppLogGroup:
Properties:
LogGroupName:
Fn::Join:
- '-'
- - Ref: AppName
- Ref: EnvName
RetentionInDays: 7
Type: AWS::Logs::LogGroup
AppLogStream:
Properties:
LogGroupName:
Fn::Join:
- '-'
- - Ref: AppName
- Ref: EnvName
LogStreamName:
Fn::Join:
- '-'
- - Ref: AppName
- Ref: EnvName
- info
Type: AWS::Logs::LogStream
现在这在大约 50% 的时间内成功部署 - 但对于另外 50%,虽然 LogGroup 创建正常,但 LogStream 的创建失败并显示 The specified log group does not exist;并且整个堆栈回滚。
我认为这是因为 AWS 内的“最终一致性”出现某种故障,但有点惊讶的是,LogStream 的创建不能等到 LogGroup 完成。
我做错了吗?我应该在我的应用程序而不是堆栈中创建 LogStreams 吗?当您发送第一条消息(怀疑)时,是否会自动创建 LogStream?这里有解决方法吗?
TIA。
【问题讨论】:
-
尝试将 DependsOn: AppLogGroup 声明添加到 AppLogStream 资源。它将等待依赖资源完成。