@azure/batch

BatchServiceClient Library with typescript type definitions for node.js and browser.

Usage no npm install needed!

<script type="module">
  import azureBatch from 'https://cdn.skypack.dev/@azure/batch';
</script>

README

Azure BatchServiceClient SDK for JavaScript

This package contains an isomorphic SDK for BatchServiceClient.

Currently supported environments

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
  1. 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);
  }
}
  1. 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

Impressions