Hi! I’m new to Terraform and been lately practicing using it. Previously I was able to create a data source to AWS Quicksight by using “aws_quicksight_data_source” resource. However I noticed that there is no “aws_quicksight_data_set” resource available yet to continue creating resources on AWS QuickSight. Instead there is “awscc_quicksight_data_set” resource available which is currently in preview state I believe.
So I decided to give awscc a go. Now when I try to create data source (the similar way like with aws resource) using “awscc_quicksight_data_source” resource, I get an error:
awscc_quicksight_data_source.terraform-data-source: Creating...
╷
│ Error: Plugin did not respond
│
│ The plugin encountered an error, and failed to respond to the plugin6.(*GRPCProvider).ApplyResourceChange call. The
│ plugin logs may contain more details.
╵
Stack trace from the terraform-provider-awscc.exe plugin:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0xc pc=0xccd66f]
Creating data source with “aws_quicksight_data_source” (WORKS):
Nice, it means we have amd64 architecture. I guess you’re using Windows (and not Mac or Linux)
try to remove .terraform folder in your project (it should contains the plugin binary as well)
if you downloaded Terraform binary can you re-open your terminal (I remember I had weird issues with PATH in Windows, so we will ensure that it’s not the case here).
Sorry for delay! I’ll be more active now when I have more time on my hands.
So, I deleted .terraform folder from my project. After that I typed terraform apply and the console returned following:
Error: Required plugins are not installed
│
│ The installed provider plugins are not consistent with the packages selected in the dependency lock file:
│ - registry.terraform.io/hashicorp/awscc: there is no package for registry.terraform.io/hashicorp/awscc 0.33.0 cached in .terraform\providers
│
│ Terraform uses external plugins to integrate with a variety of different infrastructure services. To download the
│ plugins required for this configuration, run:
│ terraform init
And then I entered terraform init:
Initializing the backend...
Initializing provider plugins...
- Reusing previous version of hashicorp/awscc from the dependency lock file
- Installing hashicorp/awscc v0.33.0...
- Installed hashicorp/awscc v0.33.0 (signed by HashiCorp)
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
After that I entered terraform apply:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
following symbols:
+ create
Terraform will perform the following actions:
// creation plan is here
Then I answer “yes” and I get the plugin error, like in the first post.
Thanks again @pavel-snyk. I really appreciate you’re helping me here. I’m truly a starter and it really could be something very simple I’m missing here but just don’t know about it.
interesting.
Could you run TF_LOG=debug terraform apply -auto-approve command, so we get more information.
It’s hard to guess now what could be wrong. Maybe it’s “just” an error in the awscc provider.
I think you just solved the problem! I debugged this and it’s about missing permission for my AWS account:
AccessDeniedException","Message":"User: arn:aws:iam::<AWS-USER-ID>:user/<AWS-USERNAME> is not authorized to perform: cloudformation:GetResourceRequestStatus on resource: arn:aws:cloudformation:eu-west-1:<AWS-USER-ID>:resource/* because no identity-based policy allows the cloudformation:GetResourceRequestStatus action"}"
Now I just need to give permission for my user.
What’s a bit weird for me is that terraform apply didn’t say anything about missing permission, only logs revealed that.