Serverless URL Shortener with Redis Cache
A sample URL shortener SPA that uses the high-level
cloud.API components. The example shows to combine serverless functions along with containers. This shows that you can create your own
abstractions for your own use, your team's, or to share with the community using your language's package manager.
Deploying and running the program
Note: some values in this example will be different from run to run. These values are indicated
Create a new stack:
$ pulumi stack init url-cache-testing
Set AWS as the provider:
$ pulumi config set cloud:provider aws
Configure Pulumi to use AWS Fargate, which is currently only available in
$ pulumi config set aws:region us-west-2 $ pulumi config set cloud-aws:useFargate true
Set a value for the Redis password. The value can be an encrypted secret, specified with the
--secretflag. If this flag is not provided, the value will be saved as plaintext in
url-cache-testingis the current stack name).
$ pulumi config set --secret redisPassword S3cr37Password
Restore NPM modules via
Preview and run the deployment via
pulumi up. The operation will take about 5 minutes to complete.
$ pulumi up Previewing stack 'url-cache-testing' ... Updating stack 'url-cache-testing' Performing changes: #: Resource Type Name 1: pulumi:pulumi:Stack url-shortener-cache-url- ... 49: aws:apigateway:Stage urlshortener info: 49 changes performed: + 49 resources created Update duration: ***
To view the API endpoint, use the
$ pulumi stack output endpointUrl https://***.us-east-1.amazonaws.com/stage/
Open this page in a browser and you'll see a single page app for creating and viewing short URLs.
To clean up resources, run
pulumi destroy and answer the confirmation question at the prompt.