【问题标题】:How to extend AWS CDK with non AWS Resources during deploy如何在部署期间使用非 AWS 资源扩展 AWS CDK
【发布时间】:2020-10-04 22:55:04
【问题描述】:

我想使用 Sumo Logic 自动设置 AWS Application Load Balancer 日志的收集,如下所述:

https://help.sumologic.com/07Sumo-Logic-Apps/01Amazon_and_AWS/AWS_Elastic_Load_Balancer_-_Application/01_Collect_Logs_for_the_AWS_Elastic_Load_Balancer_Application_App

这涉及创建一个存储桶,使用 S3 源创建一个 Sumo Logic 托管收集器,获取 Sumo Logic 提供的收集器源的 URL,然后使用 HTTP 订阅创建一个 SNS 主题,其中订阅 URL 是由Sumo Logic 源代码。

问题在于 SumoLogic 源 URL 在合成时未知。必须部署 Bucket,然后创建 Sumlogic 事物,然后创建 SNS 主题。

尽我所能,我将不得不通过使用单独的堆栈单独调用 CDK 来做到这一点,这比较慢。一个堆栈来创建存储桶。部署该堆栈后,使用 Sumo Logic api 创建或确认之前创建的 Sumo Logic 托管收集器和源,部署另一个 CDK 以创建 SNS 主题和 HTTP 订阅。

我只是想知道是否有人知道这样做的更好方法,也许是某种可以使用的部署时间挂钩。

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-alb sumologic


    【解决方案1】:

    您可以通过两种方式(据我所知)自动收集 AWS Application Load Balancer。

    1. 使用 CloudFormation
    • Sumo Logic 有一个 template,它为 AWS 应用程序负载均衡器创建收集过程,它是 AWS 可观察性解决方案的一部分。您可以分叉存储库,并可以在删除不需要的资源后创建自己的 CloudFormation 模板。
    • Sumo Logic 还有一个Serverless Application,它自动为现有和新的(在应用程序安装后创建的)负载平衡器启用访问日志记录。使用应用程序的示例 template
    1. 使用 Terraform
    • 正如Grzegorz 所述,您也可以创建一个 terraform 脚本。

    免责声明:目前受雇于 Sumo Logic。

    【讨论】:

      【解决方案2】:

      您可以尝试使用自定义资源 SDK 调用来触发执行所需操作的 lambda。

      https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_custom-resources.AwsSdkCall.html

      【讨论】:

        【解决方案3】:

        (我知道这不是一个完美的答案,因为它建议使用其他工具,但我相信它可以满足问题中表达的需求)

        使用 Terraform 怎么样?

        sumologic_s3_source in Terraform 能够在 Sumo 创建源 AND 输出其 URL 以用于 Terraform 中的其他用途 - 例如设置 AWS 资源。

        此文档甚至提到 URL 是返回值之一:

        url - 与 SNS 一起使用以通知 Sumo Logic 新的 HTTP 端点 文件。

        免责声明:我目前受雇于 Sumo Logic。

        【讨论】:

          猜你喜欢
          • 2021-04-02
          • 2020-11-08
          • 2022-07-21
          • 2020-11-09
          • 1970-01-01
          • 2021-04-08
          • 2020-04-25
          • 2020-05-03
          • 2020-03-31
          相关资源
          最近更新 更多