What is aws-sdk?
The aws-sdk npm package is the official AWS SDK for JavaScript, providing JavaScript objects for AWS services including Amazon S3, EC2, DynamoDB, and more. It allows developers to interact with AWS services programmatically, enabling them to build scalable solutions with AWS infrastructure.
What are aws-sdk's main functionalities?
Interacting with Amazon S3
This code sample demonstrates how to retrieve an object from an Amazon S3 bucket using the aws-sdk.
{"const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const params = { Bucket: 'myBucket', Key: 'myKey' };
s3.getObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});"}
Managing EC2 Instances
This code sample shows how to describe EC2 instances, providing information about instances running in your AWS account.
{"const AWS = require('aws-sdk');
const ec2 = new AWS.EC2();
const params = { InstanceIds: ['i-1234567890abcdef0'] };
ec2.describeInstances(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});"}
Working with DynamoDB
This code sample illustrates how to retrieve an item from a DynamoDB table using the aws-sdk.
{"const AWS = require('aws-sdk');
const dynamoDB = new AWS.DynamoDB();
const params = {
TableName: 'myTable',
Key: {
'myKey': { S: 'myKeyValue' }
}
};
dynamoDB.getItem(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});"}
Other packages similar to aws-sdk
google-cloud
The google-cloud package is a client library for accessing Google Cloud services similar to how aws-sdk accesses AWS services. It supports services like Google Cloud Storage, BigQuery, and more. While aws-sdk is specific to AWS, google-cloud is tailored for Google Cloud Platform.
ali-oss
The ali-oss package is an SDK for Alibaba Cloud's OSS (Object Storage Service). It offers a subset of the features provided by aws-sdk, but specifically for Alibaba Cloud's storage service. It's a more specialized tool compared to the broad service coverage of aws-sdk.
AWS SDK for JavaScript
Version 3.x Now Available
The version 3.x of the AWS SDK for JavaScript is generally available.
For more information see the Developer Guide
or API Reference.
For release notes, see the CHANGELOG. Prior to v2.4.8, release notes can be found at https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23javascript
Version 2.x Support
We are formalizing our plans to enter AWS SDK for JavaScript v2 into maintenance mode in 2023.
AWS SDK for JavaScript v3 is the latest and recommended version,
which has been GA since December 2020. Here is why and how you should use
AWS SDK for JavaScript v3. You can try our experimental
migration scripts in aws-sdk-js-codemod to migrate
your application from v2 to v3.
To get help with your migration, please follow our general guidelines to
open an issue and choose guidance.
To give feedback on and report issues in the v3 repo, please refer to
Giving feedback and contributing.
Watch this README and the AWS Developer Tools Blog
for updates and announcements regarding the maintenance plans and timelines.
Please refer to the AWS SDKs and Tools maintenance policy
for further details.
Table of Contents:
Getting Started
How To Install
In the Browser
To use the SDK in the browser, simply add the following script tag to your
HTML pages:
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1291.0.min.js"></script>
You can also build a custom browser SDK with your specified set of AWS services.
This can allow you to reduce the SDK's size, specify different API versions of
services, or use AWS services that don't currently support CORS if you are
working in an environment that does not enforce CORS. To get started:
http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/building-sdk-for-browsers.html
The AWS SDK is also compatible with browserify.
For browser-based web, mobile and hybrid apps, you can use AWS Amplify Library which extends the AWS SDK and provides an easier and declarative interface.
In Node.js
The preferred way to install the AWS SDK for Node.js is to use the
npm package manager for Node.js. Simply type the following
into a terminal window:
npm install aws-sdk
In React Native
To use the SDK in a react native project, first install the SDK using npm:
npm install aws-sdk
Then within your application, you can reference the react native compatible version of the SDK with the following:
var AWS = require('aws-sdk/dist/aws-sdk-react-native');
Alternatively, you can use AWS Amplify Library which extends AWS SDK and provides React Native UI components and CLI support to work with AWS services.
Using Bower
You can also use Bower to install the SDK by typing the
following into a terminal window:
bower install aws-sdk-js
Usage with TypeScript
The AWS SDK for JavaScript bundles TypeScript definition files for use in TypeScript projects and to support tools that can read .d.ts
files.
Our goal is to keep these TypeScript definition files updated with each release for any public api.
Pre-requisites
Before you can begin using these TypeScript definitions with your project, you need to make sure your project meets a few of these requirements:
-
Use latest version of TypeScript. We recommend 4.x+
-
Includes the TypeScript definitions for node. You can use npm to install this by typing the following into a terminal window:
npm install --save-dev @types/node
-
If you are targeting at es5 or older ECMA standards, your tsconfig.json
has to include 'es5'
and 'es2015.promise'
under compilerOptions.lib
.
See tsconfig.json for an example.
In the Browser
To use the TypeScript definition files with the global AWS
object in a front-end project, add the following line to the top of your JavaScript file:
This will provide support for the global AWS
object.
In Node.js
To use the TypeScript definition files within a Node.js project, simply import aws-sdk
as you normally would.
In a TypeScript file:
import AWS from 'aws-sdk';
import AWS from 'aws-sdk/global';
import S3 from 'aws-sdk/clients/s3';
NOTE: You need to add "esModuleInterop": true
to compilerOptions of your tsconfig.json
. If not possible, use like import * as AWS from 'aws-sdk'
.
In a JavaScript file:
var AWS = require('aws-sdk');
var AWS = require('aws-sdk/global');
var S3 = require('aws-sdk/clients/s3');
With React
To create React applications with AWS SDK, you can use AWS Amplify Library which provides React components and CLI support to work with AWS services.
With Angular
Due to the SDK's reliance on node.js typings, you may encounter compilation
issues when using the
typings provided by the SDK in an Angular project created using the Angular CLI.
To resolve these issues, either add "types": ["node"]
to the project's tsconfig.app.json
file, or remove the "types"
field entirely.
AWS Amplify Library provides Angular components and CLI support to work with AWS services.
Known Limitations
There are a few known limitations with the bundled TypeScript definitions at this time:
- Service client typings reflect the latest
apiVersion
, regardless of which apiVersion
is specified when creating a client. - Service-bound parameters use the
any
type.
Getting Help
The best way to interact with our team is through GitHub.
You can open an issue and choose from one of our templates for
bug reports,
feature requests
or guidance.
You may also find help on community resources such as StackOverFlow with the tag #aws-sdk-js.
If you have a support plan with AWS Support, you can also create a new support case.
Please make sure to check out our resources too before opening an issue:
Please see SERVICES.md for a list of supported services.
Maintenance and support for SDK major versions
For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide:
Contributing
We welcome community contributions and pull requests. See CONTRIBUTING.md for information on how to set up a development environment and submit code.
License
This SDK is distributed under the
Apache License, Version 2.0,
see LICENSE.txt and NOTICE.txt for more information.