---
title_tag: "Pulumi Cloud Framework Overview"
title: "Cloud Framework"
meta_desc: "The Pulumi Cloud Framework lets you program infrastructure and application logic using high-level, cloud-agnostic building blocks.Get started here."
aliases:
- /docs/quickstart/cloudfx/
- /docs/tutorials/cloudfx
---
The Cloud Framework for Pulumi lets you program infrastructure and application logic, side by side, using simple, high-level, cloud-agnostic building blocks.
The Cloud Framework must be configured with credentials to deploy and update resources in the target cloud platform.
See the [full API documentation](/docs/reference/pkg/nodejs/pulumi/cloud/) for complete details of the available Cloud Framework APIs.
For AWS-specific use cases, see also the [awsx](/docs/reference/pkg/nodejs/pulumi/awsx/) library which provides higher-level libraries for working with many AWS services.
## Getting Started
The easiest way to start with the Cloud Framework is to follow one of the tutorials:
* [A simple serverless REST API](/docs/tutorials/cloudfx/rest-api/): Deploy cloud-agnostic managed REST API
* [A simple containerized app](/docs/tutorials/cloudfx/service/): Deploy cloud-agnostic containerized services
* [Serverless + Containers + Infrastructure](/docs/tutorials/cloudfx/thumbnailer): Deploy a complete cloud-agnostic application using a combination of buckets, serverless functions and containers.
In addition to the tutorials, several interesting examples are available with instructions:
* [HTTP API](https://github.com/pulumi/examples/tree/master/cloud-js-api)
* [Containers](https://github.com/pulumi/examples/tree/master/cloud-js-containers)
* [Thumbnailer (buckets, containers, functions)](https://github.com/pulumi/examples/tree/master/cloud-js-thumbnailer)
* [URL Shortener (table, API)](https://github.com/pulumi/examples/tree/master/cloud-ts-url-shortener)
* [Voting App (table, API)](https://github.com/pulumi/examples/tree/master/cloud-ts-voting-app)
## Example
```javascript
const cloud = require("@pulumi/cloud");
const api = new cloud.API("my-api");
api.get("/hello", (req, res) => {
res.json({ message: "Hi, world!" });
});
exports.url = api.publish().url;
```
## Libraries
The following packages are available in package managers:
* JavaScript/TypeScript: [https://www.npmjs.com/package/@pulumi/cloud](https://www.npmjs.com/package/@pulumi/cloud)
The provider-specific implementations of this library are also available for use directly when writing code that does not need to be portable:
* JavaScript/TypeScript: [https://www.npmjs.com/package/@pulumi/cloud-aws](https://www.npmjs.com/package/@pulumi/cloud-aws)
The Cloud Framework is open source and available in the [pulumi/pulumi-cloud](https://github.com/pulumi/pulumi-cloud) repo.
## Authentication
Authentication options must be set for the target cloud provider. See the [AWS setup page](/registry/packages/aws/installation-configuration/) for details (more providers for the Cloud Framework coming soon).
## Configuration
The Cloud Framework accepts the following configuration settings. These can be provided via `pulumi config set cloud: