A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
npx @tessl/cli install tessl/npm-pulumi--aws@7.6.0Pulumi AWS is a comprehensive infrastructure-as-code SDK that provides strongly-typed TypeScript bindings for creating and managing Amazon Web Services (AWS) cloud resources. It covers the complete AWS service catalog with over 180 service modules and 1,000+ resource types, enabling programmatic infrastructure management with full AWS API coverage.
npm install @pulumi/pulumi @pulumi/awsimport * as aws from "@pulumi/aws";
import * as pulumi from "@pulumi/pulumi";For specific services:
import * as ec2 from "@pulumi/aws/ec2";
import * as s3 from "@pulumi/aws/s3";
import * as iam from "@pulumi/aws/iam";For CommonJS:
const aws = require("@pulumi/aws");
const pulumi = require("@pulumi/pulumi");import * as aws from "@pulumi/aws";
import * as pulumi from "@pulumi/pulumi";
// Configure the AWS provider
const provider = new aws.Provider("my-provider", {
region: "us-west-2",
profile: "default",
});
// Create a VPC
const vpc = new aws.ec2.Vpc("my-vpc", {
cidrBlock: "10.0.0.0/16",
enableDnsHostnames: true,
enableDnsSupport: true,
tags: {
Name: "my-vpc",
},
}, { provider });
// Create an S3 bucket
const bucket = new aws.s3.Bucket("my-bucket", {
bucket: "my-unique-bucket-name",
acl: "private",
}, { provider });
// Export the bucket name
export const bucketName = bucket.id;
export const vpcId = vpc.id;Pulumi AWS is built around several key patterns:
aws.ec2.Instance, aws.s3.Bucket)aws.ec2.getVpc, aws.s3.getBucket)Central AWS provider configuration for credentials, regions, and service endpoints.
class Provider extends pulumi.ProviderResource {
constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);
public readonly accessKey!: pulumi.Output<string | undefined>;
public readonly region!: pulumi.Output<string | undefined>;
public readonly secretKey!: pulumi.Output<string | undefined>;
public readonly profile!: pulumi.Output<string | undefined>;
public readonly customCaBundle!: pulumi.Output<string | undefined>;
public readonly ec2MetadataServiceEndpoint!: pulumi.Output<string | undefined>;
public readonly ec2MetadataServiceEndpointMode!: pulumi.Output<string | undefined>;
public readonly httpProxy!: pulumi.Output<string | undefined>;
public readonly httpsProxy!: pulumi.Output<string | undefined>;
public readonly noProxy!: pulumi.Output<string | undefined>;
public readonly retryMode!: pulumi.Output<string | undefined>;
public readonly s3UsEast1RegionalEndpoint!: pulumi.Output<string | undefined>;
public readonly stsRegion!: pulumi.Output<string | undefined>;
public readonly token!: pulumi.Output<string | undefined>;
}
interface ProviderArgs {
accessKey?: pulumi.Input<string>;
allowedAccountIds?: pulumi.Input<pulumi.Input<string>[]>;
region?: pulumi.Input<string>;
secretKey?: pulumi.Input<string>;
profile?: pulumi.Input<string>;
customCaBundle?: pulumi.Input<string>;
ec2MetadataServiceEndpoint?: pulumi.Input<string>;
ec2MetadataServiceEndpointMode?: pulumi.Input<string>;
httpProxy?: pulumi.Input<string>;
httpsProxy?: pulumi.Input<string>;
noProxy?: pulumi.Input<string>;
retryMode?: pulumi.Input<string>;
s3UsEast1RegionalEndpoint?: pulumi.Input<string>;
stsRegion?: pulumi.Input<string>;
token?: pulumi.Input<string>;
}AWS-wide utility functions for account, region, and service information.
function getCallerIdentity(args?: GetCallerIdentityArgs): Promise<GetCallerIdentityResult>;
function getRegion(args?: GetRegionArgs): Promise<GetRegionResult>;
function getAvailabilityZones(args?: GetAvailabilityZonesArgs): Promise<GetAvailabilityZonesResult>;
function getPartition(args?: GetPartitionArgs): Promise<GetPartitionResult>;
function getArn(args: GetArnArgs): Promise<GetArnResult>;
function getBillingServiceAccount(args?: GetBillingServiceAccountArgs): Promise<GetBillingServiceAccountResult>;
function getDefaultTags(args?: GetDefaultTagsArgs): Promise<GetDefaultTagsResult>;
function getIpRanges(args: GetIpRangesArgs): Promise<GetIpRangesResult>;
function getRegions(args?: GetRegionsArgs): Promise<GetRegionsResult>;
function getService(args: GetServiceArgs): Promise<GetServiceResult>;
function getServicePrincipal(args: GetServicePrincipalArgs): Promise<GetServicePrincipalResult>;
interface GetCallerIdentityResult {
accountId: string;
arn: string;
id: string;
userId: string;
}
interface GetArnResult {
account: string;
partition: string;
region: string;
resource: string;
service: string;
}
interface GetBillingServiceAccountResult {
arn: string;
id: string;
}
interface GetDefaultTagsResult {
tags: { [key: string]: string };
}
interface GetIpRangesResult {
cidrBlocks: string[];
ipv6CidrBlocks: string[];
createDate: string;
syncToken: string;
}Complete infrastructure services including EC2, Auto Scaling, and Load Balancing with 165+ resource types and data sources.
// EC2 Instance
class ec2.Instance extends pulumi.CustomResource {
constructor(name: string, args: ec2.InstanceArgs, opts?: pulumi.ResourceOptions);
public readonly ami!: pulumi.Output<string>;
public readonly instanceType!: pulumi.Output<string>;
public readonly publicIp!: pulumi.Output<string>;
public readonly privateIp!: pulumi.Output<string>;
public readonly securityGroups!: pulumi.Output<string[]>;
public readonly subnetId!: pulumi.Output<string>;
public readonly vpcSecurityGroupIds!: pulumi.Output<string[]>;
public readonly keyName!: pulumi.Output<string>;
public readonly availabilityZone!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
public readonly id!: pulumi.Output<string>;
}
// VPC
class ec2.Vpc extends pulumi.CustomResource {
constructor(name: string, args: ec2.VpcArgs, opts?: pulumi.ResourceOptions);
public readonly cidrBlock!: pulumi.Output<string>;
public readonly id!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
public readonly enableDnsHostnames!: pulumi.Output<boolean>;
public readonly enableDnsSupport!: pulumi.Output<boolean>;
public readonly defaultNetworkAclId!: pulumi.Output<string>;
public readonly defaultRouteTableId!: pulumi.Output<string>;
public readonly defaultSecurityGroupId!: pulumi.Output<string>;
public readonly mainRouteTableId!: pulumi.Output<string>;
}Complete storage solutions including S3, EBS, and EFS with object storage, block storage, and file systems.
// S3 Bucket
class s3.Bucket extends pulumi.CustomResource {
constructor(name: string, args?: s3.BucketArgs, opts?: pulumi.ResourceOptions);
public readonly bucket!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
public readonly bucketDomainName!: pulumi.Output<string>;
public readonly bucketRegionalDomainName!: pulumi.Output<string>;
public readonly hostedZoneId!: pulumi.Output<string>;
public readonly region!: pulumi.Output<string>;
public readonly websiteEndpoint!: pulumi.Output<string>;
public readonly websiteDomain!: pulumi.Output<string>;
public readonly id!: pulumi.Output<string>;
}
// EBS Volume
class ebs.Volume extends pulumi.CustomResource {
constructor(name: string, args: ebs.VolumeArgs, opts?: pulumi.ResourceOptions);
public readonly size!: pulumi.Output<number>;
public readonly type!: pulumi.Output<string>;
public readonly availabilityZone!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
public readonly encrypted!: pulumi.Output<boolean>;
public readonly kmsKeyId!: pulumi.Output<string>;
public readonly iops!: pulumi.Output<number>;
public readonly throughput!: pulumi.Output<number>;
public readonly id!: pulumi.Output<string>;
}Comprehensive database solutions including RDS, DynamoDB, and specialized database services.
// RDS Instance
class rds.Instance extends pulumi.CustomResource {
constructor(name: string, args: rds.InstanceArgs, opts?: pulumi.ResourceOptions);
public readonly engine!: pulumi.Output<string>;
public readonly dbName!: pulumi.Output<string>;
public readonly endpoint!: pulumi.Output<string>;
}
// DynamoDB Table
class dynamodb.Table extends pulumi.CustomResource {
constructor(name: string, args: dynamodb.TableArgs, opts?: pulumi.ResourceOptions);
public readonly name!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
}Complete database services documentation will be added in future versions.
Complete security services including IAM, KMS, Secrets Manager, and security monitoring tools.
// IAM Role
class iam.Role extends pulumi.CustomResource {
constructor(name: string, args: iam.RoleArgs, opts?: pulumi.ResourceOptions);
public readonly arn!: pulumi.Output<string>;
public readonly name!: pulumi.Output<string>;
}
// KMS Key
class kms.Key extends pulumi.CustomResource {
constructor(name: string, args?: kms.KeyArgs, opts?: pulumi.ResourceOptions);
public readonly keyId!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
}Complete serverless computing platform including Lambda, API Gateway, SQS, SNS, and event-driven services.
// Lambda Function
class lambda.Function extends pulumi.CustomResource {
constructor(name: string, args: lambda.FunctionArgs, opts?: pulumi.ResourceOptions);
public readonly functionName!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
public readonly invokeArn!: pulumi.Output<string>;
}
// API Gateway REST API
class apigateway.RestApi extends pulumi.CustomResource {
constructor(name: string, args?: apigateway.RestApiArgs, opts?: pulumi.ResourceOptions);
public readonly id!: pulumi.Output<string>;
public readonly executionArn!: pulumi.Output<string>;
}Complete networking infrastructure including VPC, Route53, CloudFront, and connectivity services.
// Route53 Zone
class route53.Zone extends pulumi.CustomResource {
constructor(name: string, args: route53.ZoneArgs, opts?: pulumi.ResourceOptions);
public readonly name!: pulumi.Output<string>;
public readonly zoneId!: pulumi.Output<string>;
}
// CloudFront Distribution
class cloudfront.Distribution extends pulumi.CustomResource {
constructor(name: string, args: cloudfront.DistributionArgs, opts?: pulumi.ResourceOptions);
public readonly domainName!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
}Complete networking services documentation will be added in future versions.
Complete monitoring solutions including CloudWatch, X-Ray, and operational tools for infrastructure observability.
// CloudWatch Log Group
class cloudwatch.LogGroup extends pulumi.CustomResource {
constructor(name: string, args: cloudwatch.LogGroupArgs, opts?: pulumi.ResourceOptions);
public readonly name!: pulumi.Output<string>;
public readonly arn!: pulumi.Output<string>;
}
// X-Ray Sampling Rule
class xray.SamplingRule extends pulumi.CustomResource {
constructor(name: string, args: xray.SamplingRuleArgs, opts?: pulumi.ResourceOptions);
public readonly arn!: pulumi.Output<string>;
public readonly ruleName!: pulumi.Output<string>;
}Complete monitoring and observability services documentation will be added in future versions.
The SDK includes comprehensive coverage of all AWS services organized into 180+ modules including:
Core Services: ec2, s3, iam, lambda, rds, vpc, cloudformation, cloudwatch Analytics: athena, glue, emr, kinesis, quicksight, lakeformation Machine Learning: sagemaker, comprehend, rekognition, textract, bedrock Security: kms, secretsmanager, guardduty, securityhub, macie, inspector DevOps: codebuild, codedeploy, codepipeline, codebuild, codeartifact Containers: ecs, eks, ecr, batch, apprunner **And 160+ additional specialized services
Each service module follows consistent patterns with resource classes for creating infrastructure, data source functions for querying existing resources, and complete TypeScript definitions for all properties and return values.