DEV Community

Joey The Dev
Joey The Dev

Posted on

Using aws-specific variables instead of 'Fn::Join'

As promised, I am starting with the documentation of my journey through AWS and the serverless framework so I can reference these things in the future and also help someone else along the way :)

So these posts will be super short and to the point. What I want to show today is configuring arns using the AWS variables in the serverless framework. Now a common way to configure the arn for a SNS topic inside the serverless yml/ts file using Fn::Join would be something like the below:

NB: NOTICE_ARN would be like an environment variable here

NOTICE_ARN: {
        'Fn::Join': [
          ':',
          [
            'arn:aws:sns',
            { Ref: 'AWS::Region' },
            { Ref: 'AWS::AccountId' },
            'user-notice-${self:provider.stage}'
          ]
        ]
      }
Enter fullscreen mode Exit fullscreen mode

But you can avoid the Fn::Join by simply putting everything into one string like so:

NOTICE_ARN: 'arn:aws:sns:${aws:region}:${aws:accountId}:user-notice-${self:provider.stage}'
Enter fullscreen mode Exit fullscreen mode

And thats it! Nicer, cleaner and it works offline with serverless offline too :) Previoulsy, in the environment variable, the value would be [Object Object] but now you would have a nice string with those aws values filled in.

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more