CloudFormation client setup and configuration for authentication, regions, endpoints, and customization options.
Main service client class for CloudFormation operations with comprehensive configuration support.
/**
* Main CloudFormation client class extending AWS SDK base client
* Handles authentication, region configuration, and request processing
*/
class CloudFormationClient {
constructor(configuration: CloudFormationClientConfig);
/**
* Send a command to CloudFormation service
* @param command - CloudFormation command to execute
* @returns Promise resolving to command output
*/
send<InputType, OutputType>(
command: Command<InputType, OutputType>
): Promise<OutputType>;
/** Destroy client and clean up resources */
destroy(): void;
/** Resolved client configuration */
readonly config: CloudFormationClientResolvedConfig;
}Usage Examples:
import { CloudFormationClient } from "@aws-sdk/client-cloudformation";
// Basic client with default configuration
const client = new CloudFormationClient({ region: "us-east-1" });
// Client with custom credentials
const client = new CloudFormationClient({
region: "us-west-2",
credentials: {
accessKeyId: "AKIAIOSFODNN7EXAMPLE",
secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
});
// Client with endpoint override for testing
const client = new CloudFormationClient({
region: "us-east-1",
endpoint: "http://localhost:4566" // LocalStack
});Configuration interface for CloudFormation client initialization.
interface CloudFormationClientConfig {
/** AWS region for API calls */
region?: string;
/** AWS credentials provider */
credentials?: AwsCredentialIdentityProvider;
/** Custom endpoint URL */
endpoint?: string | EndpointV2 | Provider<EndpointV2>;
/** Maximum number of retry attempts */
maxAttempts?: number | Provider<number>;
/** Retry mode configuration */
retryMode?: string | Provider<string>;
/** Logger for debugging */
logger?: Logger;
/** User agent configuration */
customUserAgent?: string;
/** HTTP handler configuration */
requestHandler?: HttpHandler<any> | HttpHandlerUserInput;
/** SHA256 constructor for request signing */
sha256?: ChecksumConstructor | HashConstructor;
/** URL parser */
urlParser?: UrlParser;
/** Base64 encoder/decoder */
base64Decoder?: Decoder;
base64Encoder?: Encoder;
/** UTF-8 encoder/decoder */
utf8Decoder?: Decoder;
utf8Encoder?: Encoder;
/** Request timeout in milliseconds */
requestTimeout?: number;
/** Disable host prefix injection */
disableHostPrefix?: boolean;
/** Service defaults mode */
defaultsMode?: DefaultsMode | Provider<DefaultsMode>;
}Common credential provider patterns for CloudFormation client authentication.
interface AwsCredentialIdentityProvider {
(): Promise<AwsCredentialIdentity>;
}
interface AwsCredentialIdentity {
accessKeyId: string;
secretAccessKey: string;
sessionToken?: string;
expiration?: Date;
}Usage Examples:
import {
CloudFormationClient,
fromEnv,
fromIni,
fromInstanceMetadata
} from "@aws-sdk/client-cloudformation";
// Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
const client = new CloudFormationClient({
region: "us-east-1",
credentials: fromEnv()
});
// AWS credentials file
const client = new CloudFormationClient({
region: "us-east-1",
credentials: fromIni({ profile: "production" })
});
// EC2 instance metadata (for resources running in AWS)
const client = new CloudFormationClient({
region: "us-east-1",
credentials: fromInstanceMetadata()
});
// Static credentials (not recommended for production)
const client = new CloudFormationClient({
region: "us-east-1",
credentials: {
accessKeyId: "AKIAIOSFODNN7EXAMPLE",
secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
});Environment-specific configuration for different JavaScript environments.
interface RuntimeExtension {
configure(extensionConfiguration: CloudFormationExtensionConfiguration): void;
}
interface CloudFormationExtensionConfiguration {
runtimeConfig: CloudFormationClientResolvedConfig;
}Base exception class for CloudFormation service errors.
/**
* Base service exception class for all CloudFormation errors
*/
class CloudFormationServiceException extends Error {
readonly name: string;
readonly message: string;
readonly stack?: string;
readonly $fault: "client" | "server";
readonly $service: "CloudFormation";
readonly $retryable?: RetryableTrait;
}Common CloudFormation exceptions include:
ValidationError - Invalid input parametersAlreadyExistsException - Resource already existsLimitExceededException - Service limits exceededInsufficientCapabilitiesException - Missing required capabilitiesTokenAlreadyExistsException - Client token already usedStackSetNotFoundException - StackSet not foundInvalidOperationException - Invalid operation for current state