【发布时间】:2021-11-05 23:29:33
【问题描述】:
我正在将来自 2 个环境(dev 和 prd)的 cloudwatch 日志订阅到同一个 firehose(dev)。开发日志订阅 dev firehose,prd 日志订阅 dev 中的 Destination 资源,然后将日志流式传输到同一个 firehose。执行此操作的 boto 调用几乎相同。
这是订阅 firehose 的代码:
boto_client.put_subscription_filter(
destinationArn=DESTINATION_ARN,
filterName=" ",
filterPattern=PATTERN,
logGroupName=LOG_GROUP_NAME,
roleArn=IAM_ROLE
)
这是订阅目的地的代码:
boto_client.put_subscription_filter(
destinationArn=DESTINATION_ARN,
filterName=" ",
filterPattern=PATTERN,
logGroupName=LOG_GROUP_NAME
)
唯一的区别是 roleArn 参数。它不能传递到目的地,必须传递到消防水带。所以我的问题是如何构建调用,以便如果环境是 dev - 我会附加 roleArn。或相反亦然。如果是 prd - 我会删除 roleArn 参数。这样我就不必创建 2 个几乎相同的函数。
附言。我尝试为 roleArn 传递 None、Empty String 和虚拟值 - 但它没有用。
【问题讨论】:
标签: python amazon-web-services design-patterns arguments boto3