Azure BatchServiceClient SDK for JavaScript
This package contains an isomorphic SDK for BatchServiceClient.Currently supported environments
- LTS versions of Node.js
- Latest versions of Safari, Chrome, Edge, and Firefox.
See our support policy for more details.
How to Install
npm install @azure/batch
How to use
nodejs - Authentication, client creation and list application as an example written in TypeScript.
Install @azure/ms-rest-nodeauth
npm install @azure/ms-rest-nodeauth
Authentication
- Use the
BatchSharedKeyCredentials
exported from@azure/batch
.
import { BatchServiceClient, BatchSharedKeyCredentials } from "@azure/batch";
const batchAccountName = process.env["AZURE_BATCH_ACCOUNT_NAME"] || "";
const batchAccountKey = process.env["AZURE_BATCH_ACCOUNT_KEY"] || "";
const batchEndpoint = process.env["AZURE_BATCH_ENDPOINT"] || "";
async function main(): Promise<void> {
try {
const creds = new BatchSharedKeyCredentials(batchAccountName, batchAccountKey);
const client = new BatchServiceClient(creds, batchEndpoint);
} catch (err) {
console.log(err);
}
}
- Use the
MSIVmTokenCredentials
exported from@azure/ms-rest-nodeauth
.
import { BatchServiceClient } from "@azure/batch";
import { loginWithVmMSI } from "@azure/ms-rest-nodeauth";
const batchEndpoint = process.env["AZURE_BATCH_ENDPOINT"] || "";
async function main(): Promise<void> {
try {
const creds = await loginWithVmMSI({
resource: "https://batch.core.windows.net/"
});
const client = new BatchServiceClient(creds, batchEndpoint);
} catch (err) {
console.log(err);
}
}
Sample code
import { BatchServiceClient, BatchServiceModels, BatchSharedKeyCredentials } from "@azure/batch";
const batchAccountName = process.env["AZURE_BATCH_ACCOUNT_NAME"] || "";
const batchAccountKey = process.env["AZURE_BATCH_ACCOUNT_KEY"] || "";
const batchEndpoint = process.env["AZURE_BATCH_ENDPOINT"] || "";
const creds = new BatchSharedKeyCredentials(batchAccountName, batchAccountKey);
const client = new BatchServiceClient(creds, batchEndpoint);
const options: BatchServiceModels.JobListOptionalParams = {
jobListOptions: { maxResults: 10 }
};
async function loop(res: BatchServiceModels.JobListResponse, nextLink?: string): Promise<void> {
if (nextLink !== undefined) {
const res1 = await client.job.listNext(nextLink);
if (res1.length) {
for (const item of res1) {
res.push(item);
}
}
return loop(res, res1.odatanextLink);
}
return Promise.resolve();
}
async function main(): Promise<void> {
const result = await client.job.list(options);
await loop(result, result.odatanextLink);
console.dir(result, { depth: null, colors: true });
}
main().catch((err) => console.log("An error occurred: ", err));
Related projects
