CloudFormation stack gets stuck after import_complete - amazon-web-services

We have an automated build and deploy pipeline using AWS CodePipeline and CloudFormation. Our stack contains a Dyanmodb resource which has critical data and should never be deleted with the stack. To prevent it from getting deleted we added a DeletionPolicy flag. This separates out the resource from the stack but we have other resources which depend upon this dynamodb resource.
So we updated our template.yml to import this resource back into the stack during deployment. Now during deployment the dynamodb resource gets imported successfully with status IMPORT_COMPLETE but we don't receive any events after that. The pipeline stays in deploy step for hours and no resource updates. There are no error messages also so its very hard to debug. Please help!

Related

CloudFormation stack stuck in 'Create-In'Progress'

I have a cloudformation stack, which I am deploying to via my cdk package. My package contains 3 constructs (a Route53 hostedZone, a dnsValidationCertificate, and an IAM role). On a previous account, with the same stack, this took 5 minutes to deploy. However, my stack has been stuck on a 'Create In Progress' state for the past 3 hours, indicating something is definitely wrong. Is there something I could do?
It sounds like the certificate is stuck in pending state waiting for domain ownership verification. Are you able to view your stuck stack in the AWS CloudFormation console, check Events, and inspect the Resources created?
https://docs.aws.amazon.com/acm/latest/userguide/domain-ownership-validation.html

What is the Terraform resource for this AWS console item?

I am looking to add notifications to a build pipeline I am deploying in AWS via Terraform. I cannot seem to locate the resource which creates the status notifications in CodeBuild. Can someone let me know which resource this is?
You’ve not mentioned what sort of notification you are looking to create, so I won’t be able to provide some sample code, however, as per the AWS docs here, you can detect state changes jn CodePipeline using Cloudwatch events.
You can find the Terraform reference for CloudWatch Event Rules here, and you can follow the docs to create a resource that monitors CodePipeline for state changes using CloudWatch Events Rules.

How to move to previous version of stack using cloudformation?

Usecase
I have cloudformation template with resources and lambda functions . Usually the cloudformation will rollback the stack when there is failure in creating it.
But what if i had pushed some resources or lambda functions with wrong logic or with less configurations . In such case i want to rollback the stack to previous working stack.
I Know i have rollback triggers to monitor my stack and trigger alarms. But i want to do it manually because, what if i had missing that test scenario and because of that the alarms not triggered.
Is it possible with cloudformation ?
Thanks
Any help is appreciated
No you can't do that with Cloudformation.
Your CD pipeline should keep track of any code builds and template configuration and you should rollback with old/archived code by pushing out a new stack with that old code.

Creation and Scheduled deletion of AWS Cloud Formation Stack

I am trying to setup an environment on AWS by launching a stack via AWS Cloud Formation template. The stack would be created and then be scheduled for deletion automatically based on the TTL parameter in the template. There seems to be a problem only when the instance is getting launched, it errors out that "Failed to receive 1 resource signal(s) within the specified duration"
If anyone could point out what I am doing wrong in the template, it would be great.
Here is the link for the template in YAML: https://s3.ca-central-1.amazonaws.com/rkbucket028/aws-openshit-cf-template_new.yml
I have already followed this article but there seems to be something wrong with it as well:-
https://aws.amazon.com/blogs/devops/scheduling-automatic-deletion-of-application-environments/#
CloudFormation rolls back if any of the resources have failed to be created (ie didnt responed in the predetermined duration). If you believe that it is only the process that is taking longer and not a genuine failure, you can either incorporate the wait condition, or better use resource creation policy time and count.
Source:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html
PS: Your template url is not accessible. Check your bucket and file permissions on S3 bucket and share the public url

How to manually rollback CloudFormation deployment of Lambda functions?

In my CodePipeline, I am creating a CloudFormation ChangeSet and then executing it to deploy Lambda functions. It doesn't seem like CloudFormation saves the old ChangeSets so that I can revert to an old version. Am I wrong?
CloudFormation does automatically rollback when it fails to create/execute the ChangeSet due to IAM permission issues and such but I want the ability to manually rollback in case I deploy a buggy function.
You could use rollback triggers in AWS CloudFormation to detect failed tests in your code, via Amazon CloudWatch metrics and alarms, and perform an automated rollback.
Your application code would need to be modified to perform the tests upon deployment, and then write the metric values into Amazon CloudWatch.
There are a couple limits you'll want to be aware of:
Maximum of five (5) rollback configurations per CloudFormation stack
Monitoring time: 0 - 180 minutes (3 hours)