-
Notifications
You must be signed in to change notification settings - Fork 9.7k
New action: aws_lambda_invoke
#43972
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
Conversation
Community GuidelinesThis comment is added to every new Pull Request to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! 🚀 Voting for Prioritization
Pull Request Authors
|
aws_lambda_invoke
e33cb03
to
dc4c78a
Compare
With action simplified updates and these:
% make t T=TestAccLambdaInvokeAction_ K=lambda
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-lambda-invoke-action 🌿...
TF_ACC=1 go1.24.6 test ./internal/service/lambda/... -v -count 1 -parallel 20 -run='TestAccLambdaInvokeAction_' -timeout 360m -vet=off
2025/09/16 18:10:54 Creating Terraform AWS Provider (SDKv2-style)...
2025/09/16 18:10:54 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccLambdaInvokeAction_basic
=== PAUSE TestAccLambdaInvokeAction_basic
=== RUN TestAccLambdaInvokeAction_withQualifier
=== PAUSE TestAccLambdaInvokeAction_withQualifier
=== RUN TestAccLambdaInvokeAction_invocationTypes
=== PAUSE TestAccLambdaInvokeAction_invocationTypes
=== RUN TestAccLambdaInvokeAction_logTypes
=== PAUSE TestAccLambdaInvokeAction_logTypes
=== RUN TestAccLambdaInvokeAction_clientContext
=== PAUSE TestAccLambdaInvokeAction_clientContext
=== RUN TestAccLambdaInvokeAction_complexPayload
=== PAUSE TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_basic
=== CONT TestAccLambdaInvokeAction_logTypes
=== CONT TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_invocationTypes
=== CONT TestAccLambdaInvokeAction_withQualifier
=== CONT TestAccLambdaInvokeAction_clientContext
--- PASS: TestAccLambdaInvokeAction_complexPayload (30.45s)
--- PASS: TestAccLambdaInvokeAction_logTypes (45.28s)
--- PASS: TestAccLambdaInvokeAction_basic (49.63s)
--- PASS: TestAccLambdaInvokeAction_withQualifier (56.97s)
--- PASS: TestAccLambdaInvokeAction_invocationTypes (60.34s)
--- PASS: TestAccLambdaInvokeAction_clientContext (63.24s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/lambda 68.750s |
Test after latest rebase: % make t T=TestAccLambdaInvokeAction_ K=lambda
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-lambda-invoke-action 🌿...
TF_ACC=1 go1.24.6 test ./internal/service/lambda/... -v -count 1 -parallel 20 -run='TestAccLambdaInvokeAction_' -timeout 360m -vet=off
2025/09/17 09:58:40 Creating Terraform AWS Provider (SDKv2-style)...
2025/09/17 09:58:40 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccLambdaInvokeAction_basic
=== PAUSE TestAccLambdaInvokeAction_basic
=== RUN TestAccLambdaInvokeAction_withQualifier
=== PAUSE TestAccLambdaInvokeAction_withQualifier
=== RUN TestAccLambdaInvokeAction_invocationTypes
=== PAUSE TestAccLambdaInvokeAction_invocationTypes
=== RUN TestAccLambdaInvokeAction_logTypes
=== PAUSE TestAccLambdaInvokeAction_logTypes
=== RUN TestAccLambdaInvokeAction_clientContext
=== PAUSE TestAccLambdaInvokeAction_clientContext
=== RUN TestAccLambdaInvokeAction_complexPayload
=== PAUSE TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_basic
=== CONT TestAccLambdaInvokeAction_logTypes
=== CONT TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_invocationTypes
=== CONT TestAccLambdaInvokeAction_withQualifier
=== CONT TestAccLambdaInvokeAction_clientContext
--- PASS: TestAccLambdaInvokeAction_withQualifier (29.12s)
--- PASS: TestAccLambdaInvokeAction_clientContext (34.58s)
--- PASS: TestAccLambdaInvokeAction_logTypes (49.21s)
--- PASS: TestAccLambdaInvokeAction_basic (53.73s)
--- PASS: TestAccLambdaInvokeAction_complexPayload (60.50s)
--- PASS: TestAccLambdaInvokeAction_invocationTypes (63.35s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/lambda 68.836s |
79b5d5c
to
56f5e7f
Compare
After rebase: % make t T=TestAccLambdaInvokeAction_ K=lambda
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-lambda-invoke-action 🌿...
TF_ACC=1 go1.24.6 test ./internal/service/lambda/... -v -count 1 -parallel 20 -run='TestAccLambdaInvokeAction_' -timeout 360m -vet=off
2025/09/17 11:37:20 Creating Terraform AWS Provider (SDKv2-style)...
2025/09/17 11:37:20 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccLambdaInvokeAction_basic
=== PAUSE TestAccLambdaInvokeAction_basic
=== RUN TestAccLambdaInvokeAction_withQualifier
=== PAUSE TestAccLambdaInvokeAction_withQualifier
=== RUN TestAccLambdaInvokeAction_invocationTypes
=== PAUSE TestAccLambdaInvokeAction_invocationTypes
=== RUN TestAccLambdaInvokeAction_logTypes
=== PAUSE TestAccLambdaInvokeAction_logTypes
=== RUN TestAccLambdaInvokeAction_clientContext
=== PAUSE TestAccLambdaInvokeAction_clientContext
=== RUN TestAccLambdaInvokeAction_complexPayload
=== PAUSE TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_basic
=== CONT TestAccLambdaInvokeAction_logTypes
=== CONT TestAccLambdaInvokeAction_withQualifier
=== CONT TestAccLambdaInvokeAction_complexPayload
=== CONT TestAccLambdaInvokeAction_clientContext
=== CONT TestAccLambdaInvokeAction_invocationTypes
--- PASS: TestAccLambdaInvokeAction_complexPayload (28.22s)
--- PASS: TestAccLambdaInvokeAction_clientContext (34.43s)
--- PASS: TestAccLambdaInvokeAction_basic (40.82s)
--- PASS: TestAccLambdaInvokeAction_withQualifier (48.49s)
--- PASS: TestAccLambdaInvokeAction_logTypes (62.31s)
--- PASS: TestAccLambdaInvokeAction_invocationTypes (76.88s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/lambda 82.564s |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🎉
After building core from main
:
% TF_ACC_TERRAFORM_PATH=/Users/jaredbaker/go/bin/terraform make t K=lambda T=TestAccLambdaInvokeAction_
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-lambda-invoke-action 🌿...
TF_ACC=1 go1.24.6 test ./internal/service/lambda/... -v -count 1 -parallel 20 -run='TestAccLambdaInvokeAction_' -timeout 360m -vet=off
2025/09/17 12:43:04 Creating Terraform AWS Provider (SDKv2-style)...
2025/09/17 12:43:04 Initializing Terraform AWS Provider (SDKv2-style)...
--- PASS: TestAccLambdaInvokeAction_withQualifier (29.14s)
--- PASS: TestAccLambdaInvokeAction_complexPayload (34.87s)
--- PASS: TestAccLambdaInvokeAction_basic (41.21s)
--- PASS: TestAccLambdaInvokeAction_clientContext (60.56s)
--- PASS: TestAccLambdaInvokeAction_logTypes (62.41s)
--- PASS: TestAccLambdaInvokeAction_invocationTypes (64.32s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/lambda 70.942s
|
||
For information about AWS Lambda functions, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/). For specific information about invoking Lambda functions, see the [Invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html) page in the AWS Lambda API Reference. | ||
|
||
~> **Note:** `aws_lambda_invoke` is in beta. Its interface and behavior may change as the feature evolves, and breaking changes are possible. It is offered as a technical preview without compatibility guarantees until Terraform 1.14 is generally available. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps move this one to the top, or above the title heading for better visibility?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved below the title. markdown-lint doesn't like above the title.
Warning This Issue has been closed, meaning that any additional comments are much easier for the maintainers to miss. Please assume that the maintainers will not see them. Ongoing conversations amongst community members are welcome, however, the issue will be locked after 30 days. Moving conversations to another venue, such as the AWS Provider forum, is recommended. If you have additional concerns, please open a new issue, referencing this one where needed. |
This functionality has been released in v6.14.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you! |
This updates `aws_lambda_invoke` code examples to more closely mirror hashicorp/terraform-provider-aws#43972
Rollback Plan
If a change needs to be reverted, we will publish an updated version of the library.
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.
Description
Since these actions may be merged in bulk, extra checklist to help:
terraform_data
triggerwebsite/docs/actions/
fileregion
pattern (framework.WithRegionModel
)This PR introduces support for the new
aws_lambda_invoke
action as part of Terraform's Actions framework. Actions provide a way to add imperative functionality to Terraform's declarative universe, allowing users to trigger specific operations during resource lifecycle events. Actions are particularly useful for scenarios like cache invalidation, service warming, data processing, and other operational tasks that need to occur at specific points in the infrastructure deployment process.The
aws_lambda_invoke
action enables users to directly invoke AWS Lambda functions with full control over invocation parameters. This action supports synchronous (RequestResponse
), asynchronous (Event
), and dry-run (DryRun
) invocation types, allowing for flexible integration patterns. Users can specify function versions/aliases, include execution logs, pass client context for mobile applications, and provide JSON payloads up to 6MB for synchronous or 256KB for asynchronous invocations.Common use cases include post-deployment function warming, cache invalidation workflows, background data processing, CI/CD pipeline integration, and triggering serverless workflows. The action integrates seamlessly with Terraform's action trigger system, enabling Lambda invocations to be tied to resource lifecycle events such as
before_create
,before_update
, orbefore_destroy
, providing powerful automation capabilities for infrastructure operations.Relations
aws_lambda_invoke
#43972aws_cloudfront_create_invalidation
#43955aws_ses_send_email
#44214aws_sns_publish
#44232aws_ec2_stop_instance
#43700References
Output from Acceptance Testing