部署期间如何使用非AWS资源扩展AWS CDK

时间:2020-10-04 22:55:04

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

我想使用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订阅。

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

3 个答案:

答案 0 :(得分:2)

您可以通过两种方式(我知道)自动执行AWS Application Load Balancer的收集。

  1. 使用CloudFormation
  • Sumo Logic的template为AWS Application Load Balancer创建收集流程,该流程是AWS Observability Solution的一部分。您可以派生存储库,并在删除不需要的资源之后创建自己的CloudFormation模板。
  • Sumo Logic还具有Serverless Application,它会自动为现有和新的(在应用程序安装后创建的)负载平衡器启用访问日志记录。使用该应用程序的示例template
  1. 使用Terraform
  • Grzegorz所述,您也可以创建terraform脚本。

免责声明:目前由Sumo Logic使用。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

如何使用Terraform?

sumologic_s3_source in Terraform可以在Sumo 中创建源,并输出其URL以供Terraform中的其他用途使用-例如设置AWS资源。

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

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

免责声明:我目前在Sumo Logic工作。