Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support for Eventbridge Scheduler Schedules #83

Merged
merged 10 commits into from
Jun 17, 2023

Conversation

pmcenery-bl
Copy link
Contributor

@pmcenery-bl pmcenery-bl commented Mar 16, 2023

Description

I have added basic support for the aws_scheduler_schedule resource type.

Motivation and Context

Eventbridge support in the module would be more complete with this functionality. Indeed it may not be perfect or complete, but hopefully this is a starting point for full scheduler support in addition to the existing features supported by the module. This issue exists for discussion as well.

Fixes #81

Breaking Changes

None.

How Has This Been Tested?

  • I have updated at least one of the examples/* to demonstrate and validate my change(s)
  • I have tested and validated these changes using one or more of the provided examples/* projects
  • I have executed pre-commit run -a on my pull request

Resolves terraform-aws-modules#81

Signed-off-by: Paul McEnery <paul.mcenery@bourne-leisure.co.uk>
Resolves terraform-aws-modules#81

Signed-off-by: Paul McEnery <paul.mcenery@bourne-leisure.co.uk>
Resolves terraform-aws-modules#81

Signed-off-by: Paul McEnery <paul.mcenery@bourne-leisure.co.uk>
Resolves terraform-aws-modules#81

Signed-off-by: Paul McEnery <paul.mcenery@bourne-leisure.co.uk>
@pmcenery-bl pmcenery-bl changed the title Support for Eventbridge Scheduler Schedules feat: Support for Eventbridge Scheduler Schedules Mar 16, 2023
@github-actions
Copy link

This PR has been automatically marked as stale because it has been open 30 days
with no activity. Remove stale label or comment or this PR will be closed in 10 days

@pmcenery-bl
Copy link
Contributor Author

@antonbabenko Please can you take a look at this PR for me, and possibly re-open the issue associated. Happy to carry out any recommended changes to improve it...

@github-actions github-actions bot removed the stale label Apr 26, 2023
@bryantbiggs
Copy link
Member

@pmcenery-bl please fix the failing CI checks when you get a chance

Copy link
Member

@antonbabenko antonbabenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty good, but I could not get the proposed example to work. Please update it and fix the comments.

@@ -0,0 +1,59 @@
# EventBridge Lambda & Scheduler Schedules Example
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the description a bit to match the reality of this example (compare with with-lambda-scheduling).

trusted_entities = ["scheduler.amazonaws.com"]

attach_lambda_policy = true
lambda_target_arns = [module.lambda.lambda_function_arn]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is something wrong with IAM role. I get this error when I run it:

╷
│ Error: creating Amazon EventBridge Scheduler Schedule (lambda-cron-schedule): operation error Scheduler: CreateSchedule, https response error StatusCode: 400, RequestID: 017300d7-dfec-461d-9653-3fb571a2085a, ValidationException: The execution role you provide must allow AWS EventBridge Scheduler to assume the role.
│ 
│   with module.eventbridge.aws_scheduler_schedule.this["lambda-cron"],
│   on ../../main.tf line 413, in resource "aws_scheduler_schedule" "this":
│  413: resource "aws_scheduler_schedule" "this" {
│ 
╵

Could you please take a look and update this example to work as it should with all required IAM roles/policies?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weirdly enough, this error message was because the EventBridge Scheduler service is not available in ap-southeast-1 region we used in the example. It took me some time to find it out :)

Now I can finish this PR.

README.md Show resolved Hide resolved
@antonbabenko antonbabenko merged commit e3c4ffe into terraform-aws-modules:master Jun 17, 2023
15 checks passed
antonbabenko pushed a commit that referenced this pull request Jun 17, 2023
## [2.3.0](v2.2.0...v2.3.0) (2023-06-17)

### Features

* Support for Eventbridge Scheduler Schedules ([#83](#83)) ([e3c4ffe](e3c4ffe))
@antonbabenko
Copy link
Member

This PR is included in version 2.3.0 🎉

KamranBiglari pushed a commit to KamranBiglari/terraform-aws-eventbridge that referenced this pull request Jan 10, 2024
## 1.0.0 (2024-01-10)

### ⚠ BREAKING CHANGES

* Upgraded AWS provider to v5 (required for Pipes) (terraform-aws-modules#94)
* Bump Terraform version to 1.0 and updated `ecs_target` arguments (terraform-aws-modules#85)

### Features

* Add attach_sns_policy ([terraform-aws-modules#89](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/89)) ([6e09aa1](6e09aa1))
* Add example for ECS + scheduled events ([terraform-aws-modules#14](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/14)) ([32ea196](32ea196))
* Add schema discoverer ([terraform-aws-modules#64](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/64)) ([0099c43](0099c43))
* Add support for EventBridge Pipes ([terraform-aws-modules#92](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/92)) ([ff131eb](ff131eb))
* Add support for setting the condition field in Event Bus permissions ([terraform-aws-modules#84](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/84)) ([49f1dff](49f1dff))
* Added Name tag for IAM policies and roles ([terraform-aws-modules#62](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/62)) ([8ca8835](8ca8835))
* Added support for API destinations ([terraform-aws-modules#27](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/27)) ([b4f1ef8](b4f1ef8))
* Added support for custom role_arn in targets ([terraform-aws-modules#42](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/42)) ([45311f7](45311f7))
* Bump Terraform version to 1.0 and updated `ecs_target` arguments ([terraform-aws-modules#85](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/85)) ([04a3249](04a3249))
* first commit ([terraform-aws-modules#1](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/1)) ([48eeb94](48eeb94))
* Simplified outputs (no this_) ([terraform-aws-modules#6](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/6)) ([eb8051c](eb8051c))
* Some refactoring and added ability to handle default bus ([terraform-aws-modules#5](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/5)) ([32f75c1](32f75c1))
* Support for Eventbridge Scheduler Schedules ([terraform-aws-modules#83](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/83)) ([e3c4ffe](e3c4ffe))
* Support for existing event buses ([terraform-aws-modules#22](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/22)) ([6a499b6](6a499b6))
* support http_target argument ([terraform-aws-modules#11](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/11)) ([ee5d963](ee5d963))
* Upgraded AWS provider to v5 (required for Pipes) ([terraform-aws-modules#94](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/94)) ([ba4d055](ba4d055))
* Upgraded AWS provider version to 4.7 ([terraform-aws-modules#66](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/66)) ([7690287](7690287))

### Bug Fixes

* `create_rules = false` causes error ([terraform-aws-modules#19](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/19)) ([6d8b8d7](6d8b8d7))
* Add explicit to_map for empty object for aws_cloudwatch_event_target ([terraform-aws-modules#24](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/24)) ([9b49848](9b49848))
* Amend batch_target to be correct value ([terraform-aws-modules#35](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/35)) ([babb4d6](babb4d6))
* Amend ecs_target network_configuration to work when no ecs_target supplied ([terraform-aws-modules#25](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/25)) ([852ea30](852ea30))
* Enable adding event_source_name to an Event Bus to enable receiving events from an SaaS partner ([terraform-aws-modules#82](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/82)) ([f92a78c](f92a78c))
* Enable run_command_targets support for target ([terraform-aws-modules#54](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/54)) ([e153898](e153898))
* Fix tomap call for terraform 0.15 ([terraform-aws-modules#10](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/10)) ([d303324](d303324))
* Fixed function name from to_map to tomap ([terraform-aws-modules#26](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/26)) ([e601dec](e601dec))
* Fixed inappropriate values for subnets and security_groups in example ([terraform-aws-modules#63](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/63)) ([fd7a25b](fd7a25b))
* Fixed incorrect tomap() ([terraform-aws-modules#39](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/39)) ([05bceba](05bceba))
* Fixed misleading descriptions of IAM role (not Lambda) ([terraform-aws-modules#76](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/76)) ([aa92195](aa92195))
* Fixed outputs when create=false ([terraform-aws-modules#33](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/33)) ([3dcc882](3dcc882))
* Make it optional to append postfix to the name, connection, or API destination  ([terraform-aws-modules#58](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/58)) ([980b910](980b910))
* Problems found when importing resources previously already created ([terraform-aws-modules#61](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/61)) ([015122e](015122e))
* property lookup in ecs_target block ([terraform-aws-modules#8](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/8)) ([af29da3](af29da3))
* remove create_bus as a blocker for role_arn ([terraform-aws-modules#13](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/13)) ([5453970](5453970))
* update CI/CD process to enable auto-release workflow ([terraform-aws-modules#31](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/31)) ([ad31225](ad31225))
* update sqs access policy ([terraform-aws-modules#16](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/16)) ([2de06bd](2de06bd))
* Use a version for  to avoid GitHub API rate limiting on CI workflows ([terraform-aws-modules#75](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/75)) ([e9a7813](e9a7813))
* Wrong value of api destination output ([terraform-aws-modules#79](https://github.com/KamranBiglari/terraform-aws-eventbridge/issues/79)) ([03ef4ff](03ef4ff))
Copy link

github-actions bot commented Mar 9, 2024

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AWS EventBridge Scheduler Support
3 participants