A sample URL shortener SPA that uses the high-level cloud.Table and cloud.API components. The example shows to combine serverless functions along with containers. This shows that you can create your own cloud.*-like
abstractions for your own use, your team's, or to share with the community using your language's package manager.
Note: some values in this example will be different from run to run. These values are indicated
with ***.
-
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
us-east-1,us-east-2,us-west-2, andeu-west-1:$ 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 inPulumi.url-cache-testing.yaml(sinceurl-cache-testingis the current stack name).$ pulumi config set --secret redisPassword S3cr37Password -
Restore NPM modules via
npm installoryarn install. -
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
stack outputcommand:$ 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.