aws / aws-cdk

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
https://aws.amazon.com/cdk
Apache License 2.0
11.5k stars 3.84k forks source link

đź“ŠTracking: Amazon MQ #6826

Open NGL321 opened 4 years ago

NGL321 commented 4 years ago

Add your +1 đź‘Ť to help us prioritize high-level constructs for this service


Overview:

Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. Message brokers allow different software systems–often using different programming languages, and on different platforms–to communicate and exchange information. Amazon MQ reduces your operational load by managing the provisioning, setup, and maintenance of ActiveMQ, a popular open-source message broker. Connecting your current applications to Amazon MQ is easy because it uses industry-standard APIs and protocols for messaging, including JMS, NMS, AMQP, STOMP, MQTT, and WebSocket. Using standards means that in most cases, there’s no need to rewrite any messaging code when you migrate to AWS.

AWS Docs

Maturity: CloudFormation Resources Only

See the AWS Construct Library Module Lifecycle doc for more information about maturity levels.

Implementation:

See the CDK API Reference for more implementation details.

Issue list:


This is a đź“ŠTracking Issue

Clean-Cole commented 3 years ago

I put some work into some L2 constructs for AmazonMQ. I decided to stop where I am to make sure there are no glaring design issues as well as to hopefully get input from people who use ActiveMQ more.

https://github.com/Clean-Cole/aws-cdk/tree/amazonmq-broker-constructs

import * as mq from '@aws-cdk/aws-amazonmq';
import * as ec2 from '@aws-cdk/aws-ec2';

new mq.Broker(this, 'MyMessageBroker', {
  engineType: mq.BrokerEngineType.ACTIVE_MQ,
  engineVersion: mq.BrokerEngineVersion.forActiveMQ(mq.ActiveMQEngineVersion.V_5_15_14),
  hostInstanceType: mq.BrokerInstanceType.forActiveMQ(mq.ActiveMQBrokerInstanceSize.MQ_T2_MICRO),
  deploymentMode: mq.BrokerDeploymentMode.SINGLE_INSTANCE,
  vpc: new ec2.Vpc(this, 'MyVpc'),
});
new mq.BrokerConfiguration(stack, 'MyBrokerConfig', {
  engineType: mq.BrokerEngineType.ACTIVE_MQ,
  engineVersion: mq.BrokerEngineVersion.forActiveMQ(mq.ActiveMQEngineVersion.V_5_15_12),
  configurationData: '<xml></xml>',
});

I did my best to keep test coverage up during dev. There are certainly a few loose ends, but all the major L2 Constructs are created, tested and have at least initial docs.

image

@NGL321 or @MrArnoldPalmer what is your recommendations for trying to push this forward? Its not ready for a proper PR quite yet, but I'm looking for the best place to get feedback beforehand.

Here is my short punch list of left to do items.

TODO List

shellscape commented 1 year ago

@NGL321 this has languished for some time. any way we can get some renewed traction?

DEADSEC-SECURITY commented 1 year ago

Please bring this back @Clean-Cole. Btw does this PR solve the exposed password issue in MQ? I wanted to use aws secrets with MQ but the L1 forces me to expose the password and username to the template yaml.

Clean-Cole commented 1 year ago

I would consider pushing this the rest of the way in my spare time, but I never got much interest or feedback from the cdk team after my original posting of it. I don't wanna dump time into this if its gonna go un-noticed / un-used again. Not much point in maintaining it as a separate package either, in my opinion.

@DEADSEC-SECURITY Your question about the exposed password is a good one, and something I can recall at least wanting to account for with a cdk.SecretValue but whether or not that "fixed" the underlying Cloudformation API issue concerning the "BrokerUser" I really can't say after not looking at this for so long. Here is the file that would have your answer I think.

suankan commented 1 year ago

Sad to see there is still no official L2 construct in AWS CDK... Even more sad to see people trying to help you guys and offer PRs, which do not get any attention for 3 years.

Hey AWS, where did all the leadership principles go? Please own it better!

lucasgadams commented 12 months ago

+1 would love to see support on this!

github-actions[bot] commented 1 month ago

This issue has received a significant amount of attention so we are automatically upgrading its priority. A member of the community will see the re-prioritization and provide an update on the issue.