This new provider for HashiCorp Terraform — built around the AWS Cloud Control API — is designed to bring new services to Terraform faster.
The HashiCorp Terraform AWS Cloud Control Provider, currently in tech preview, aims to bring Amazon Web Services (AWS) resources to Terraform users faster. The new provider is automatically generated, which means new features and services on AWS can be supported right away. The AWS Cloud Control provider supports hundreds of AWS resources, with more support being added as AWS service teams adopt the Cloud Control API standard.
For Terraform users managing infrastructure on AWS, we expect this new provider will be used alongside the existing AWS provider, which will continue to be maintained. Given the ability to automatically support new features and services, this new provider will increase the resource coverage and significantly reduce the time it takes to support new capabilities. We are excited for this to improve the experience and avoid the frustration caused by coverage gaps.
AWS Cloud Control API makes it easy for developers to manage their cloud infrastructure in a consistent manner and to leverage the latest AWS capabilities faster by providing a unified set of API actions as well as common input parameters and error types across AWS services. As a result, any resource type published to the CloudFormation Public Registry exposes a standard JSON schema and can be acted upon by this interface. AWS Cloud Control API is available in all commercial regions, except China.
For more information about AWS Cloud Control API, visit the user guide and documentation.
Because AWS Cloud Control API provides an abstraction layer for resource providers to proxy through when interacting with AWS service APIs, we are able to automatically generate the codebase for the AWS Cloud Control Terraform provider. Generating the provider allows us to provide new resources faster because we won’t have to write boilerplate and standard resource implementations for each new service. The maintainers of the Terraform AWS Cloud Control provider can instead focus on user experience upgrades and performance improvements.
While the Terraform AWS Cloud Control Provider is still in tech preview, we suggest practitioners use this provider to:
Until the conclusion of the tech preview, we suggest using the Terraform AWS provider for production use across critical services. We will be evaluating the tech preview and will rely on community feedback to inform our decisions regarding general availability.
In order to use the new Terraform AWS Cloud Control provider, you will need:
In order to configure the provider, you will need to employ the configuration blocks shown here, while specifying your preferred region:
To use the AWS Cloud Control provider, you will need to authenticate with your AWS account. You can use any authentication method available in the AWS SDK, including:
For more information and examples, please refer to the provider documentation on the Terraform Registry.
To see how it all fits together, check out this example configuration using Amazon AppFlow. First, set up an AppFlow flow
using the Terraform AWS Cloud Control API provider (awscc
). Then set up an Amazon S3 bucket to store the flow
data using the Terraform AWS provider (aws
).
This example demonstrates how you can use the core resources in the aws
provider to supplement the new services in the awscc
provider.
You’ll need to configure both providers in the same configuration file. Both the awscc
and aws
providers must be initialized for this example to work.
Set up your S3 buckets using the aws
provider. Designate a bucket for both your source and destination.
When creating a flow
, you will need to provide the flow_name
, connector_type
, tasks
, and trigger_config
. Other optional attributes, such as tags
can also be set on the resource.
To store flow data in S3, you must provide the bucket_name
within the destination_connector_properties
. You can also optionally provide the bucket_prefix
and the s3_output_config
.
Note: At this time the AWS Cloud Control API does not offer the ability to schedule or start flows. To schedule your configured flow, you will need to use the AWS AppFlow console. For more information about how to use Amazon AppFlow and the various connection and destination types, visit the Amazon AppFlow documentation.
For additional examples visit the HashiCorp Learn Guide.
We would love to hear your feedback on this project. You can report bugs and request features or enhancements for the AWS Cloud Control provider by opening an issue on our GitHub repository.
For AWS service coverage requests, please create an issue on the CloudFormation Public Coverage Roadmap.
For documentation and examples, please visit the Terraform Registry and the HashiCorp Learn platform.
Version 5.0 of the HashiCorp Terraform AWS provider brings improvements to default tags, allowing practitioners to set tags at the provider level.
Learn how HashiCorp Terraform supports the deployment of Azure Linux container host for Azure Kubernetes Service (AKS).
New CI/CD pipeline templates for GitHub Actions and GitLab CI provide prescriptive guides for integrating with Terraform Cloud, and a new integration tool can help build workflows with other CI/CD platforms.