How to include Serverless Repository apps in serverless.yml
Tags: aws, cloudformation, lambda, programming
Published: 2019-05-13 21:08:45

---
title: How to include Serverless Repository apps in serverless.yml
published: true
tags: AWS,CloudFormation,Lambda,Programming
canonical_url: https://theburningmonk.com/2019/05/how-to-include-serverless-repository-apps-in-serverless-yml/
---

Over the past year, the Serverless Application Repository (SAR) service has improved a lot. I have grown to enjoy it more and more, and have contributed a few applications myself:

- [**lambda-janitor**](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:374852340823:applications~lambda-janitor): cron job to delete old, unused versions of all Lambda functions in the region to free up storage space.
- [**auto-subscribe-log-group-to-arn**](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:374852340823:applications~auto-subscribe-log-group-to-arn): subscribes new and existing CloudWatch log groups to a Lambda function, Kinesis stream, or Firehose delivery stream by ARN.
- [**auto-set-log-group-retention**](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:374852340823:applications~auto-set-log-group-retention): updates the retention policy for new and existing CloudWatch log groups to a specified number of days to reduce CloudWatch Logs cost.

However, CloudFormation does not natively support the `AWS::Serverless::Application` resource type. Until recently, I had to use the [SAM](https://github.com/awslabs/serverless-application-model) deployment framework in order to include a SAR app in my stack. That is, until the [1.41.0](https://serverless.com/blog/framework-release-v141/) release of the [Serverless](https://serverless.com/framework/) framework.

In this release, the Serverless framework has added [support for CloudFormation’s Transform directive](https://github.com/serverless/serverless/pull/5997). This means we can use the same magic source (CloudFormation macros) that powers SAM!

To add a Serverless Repository app to your `serverless.yml` you will need to:

1. Add `Transform: AWS::Serverless-2016–10–31` to the `resources` section of your `serverless.yml`. This enables a global macro that will run over the whole CloudFormation stack and transform special resources as necessary. In this case, it’ll transform `AWS::Serverless::Application` resources into nested CloudFormation stacks.
2. Add Serverless Repository apps as additional CloudFormation resources. These should have the resource type `AWS::Serverless::Application`.

For example, to include the `auto-subscribe-log-group-to-arn` app as part of a serverless.yml, I will need the following:

{% gist https://gist.github.com/theburningmonk/d51a53c25f7aefd503b35d79bd6508b1 %}

And that’s it, that’s how you can include Serverless Repository apps in your `serverless.yml`.


The post [How to include Serverless Repository apps in serverless.yml](https://theburningmonk.com/2019/05/how-to-include-serverless-repository-apps-in-serverless-yml/) appeared first on [theburningmonk.com](https://theburningmonk.com).

 ![](http://feeds.feedburner.com/~r/theburningmonk/~4/mz_Sn4GlrzU)