Weitere AWS SDK Beispiele sind im Repo AWS Doc SDK Examples
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS Support Beispiele SDK für die Verwendung von for JavaScript (v3)
Die folgenden Codebeispiele zeigen Ihnen, wie Sie Aktionen ausführen und allgemeine Szenarien implementieren, indem Sie AWS SDK for JavaScript (v3) mit verwenden AWS Support.
Basics sind Codebeispiele, die Ihnen zeigen, wie Sie die wesentlichen Operationen innerhalb eines Dienstes ausführen.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Aktionen zeigen Ihnen zwar, wie Sie einzelne Servicefunktionen aufrufen, aber Sie können Aktionen im Kontext der zugehörigen Szenarien sehen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, in dem Sie Anweisungen zum Einrichten und Ausführen des Codes im Kontext finden.
Erste Schritte
Die folgenden Codebeispiele veranschaulichen, wie Sie mit der Verwendung von AWS Support beginnen.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. Rufen Sie „main()“ auf, um das Beispiel auszuführen.
import { DescribeServicesCommand, SupportClient, } from "@aws-sdk/client-support"; // Change the value of 'region' to your preferred AWS Region. const client = new SupportClient({ region: "us-east-1" }); const getServiceCount = async () => { try { const { services } = await client.send(new DescribeServicesCommand({})); return services.length; } catch (err) { if (err.name === "SubscriptionRequiredException") { throw new Error( "You must be subscribed to the AWS Support plan to use this feature.", ); } throw err; } }; export const main = async () => { try { const count = await getServiceCount(); console.log(`Hello, AWS Support! There are ${count} services available.`); } catch (err) { console.error("Failed to get service count: ", err.message); } };
-
APIEinzelheiten finden Sie DescribeServicesunter AWS SDK for JavaScript APIReferenz.
-
Themen
Grundlagen
Wie das aussehen kann, sehen Sie am nachfolgenden Beispielcode:
Rufen Sie verfügbare Services und Schweregrade für Fälle ab und zeigen Sie sie an.
Erstellen Sie einen Supportfall mit einem ausgewählten Service, einer ausgewählten Kategorie und einem ausgewählten Schweregrad.
Rufen Sie eine Liste der offenen Fälle für den aktuellen Tag ab und zeigen Sie sie an.
Fügen Sie dem neuen Fall einen Anhangssatz und eine Mitteilung hinzu.
Beschreiben Sie den neuen Anhang und die Mitteilung für den Fall.
Lösen Sie den Fall.
Rufen Sie eine Liste der gelösten Fälle für den aktuellen Tag ab und zeigen Sie sie an.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. Führen Sie ein interaktives Szenario im Terminal aus.
import { AddAttachmentsToSetCommand, AddCommunicationToCaseCommand, CreateCaseCommand, DescribeAttachmentCommand, DescribeCasesCommand, DescribeCommunicationsCommand, DescribeServicesCommand, DescribeSeverityLevelsCommand, ResolveCaseCommand, SupportClient, } from "@aws-sdk/client-support"; import * as inquirer from "@inquirer/prompts"; import { retry } from "@aws-doc-sdk-examples/lib/utils/util-timers.js"; const wrapText = (text, char = "=") => { const rule = char.repeat(80); return `${rule}\n ${text}\n${rule}\n`; }; const client = new SupportClient({ region: "us-east-1" }); // Verify that the account has a Support plan. export const verifyAccount = async () => { const command = new DescribeServicesCommand({}); try { await client.send(command); } catch (err) { if (err.name === "SubscriptionRequiredException") { throw new Error( "You must be subscribed to the AWS Support plan to use this feature.", ); } throw err; } }; /** * Select a service from the list returned from DescribeServices. */ export const getService = async () => { const { services } = await client.send(new DescribeServicesCommand({})); const selectedService = await inquirer.select({ message: "Select a service. Your support case will be created for this service. The list of services is truncated for readability.", choices: services.slice(0, 10).map((s) => ({ name: s.name, value: s })), }); return selectedService; }; /** * @param {{ categories: import('@aws-sdk/client-support').Category[]}} service */ export const getCategory = async (service) => { const selectedCategory = await inquirer.select({ message: "Select a category.", choices: service.categories.map((c) => ({ name: c.name, value: c })), }); return selectedCategory; }; // Get the available severity levels for the account. export const getSeverityLevel = async () => { const command = new DescribeSeverityLevelsCommand({}); const { severityLevels } = await client.send(command); const selectedSeverityLevel = await inquirer.select({ message: "Select a severity level.", choices: severityLevels.map((s) => ({ name: s.name, value: s })), }); return selectedSeverityLevel; }; /** * Create a new support case * @param {{ * selectedService: import('@aws-sdk/client-support').Service * selectedCategory: import('@aws-sdk/client-support').Category * selectedSeverityLevel: import('@aws-sdk/client-support').SeverityLevel * }} selections * @returns */ export const createCase = async ({ selectedService, selectedCategory, selectedSeverityLevel, }) => { const command = new CreateCaseCommand({ subject: "IGNORE: Test case", communicationBody: "This is a test. Please ignore.", serviceCode: selectedService.code, categoryCode: selectedCategory.code, severityCode: selectedSeverityLevel.code, }); const { caseId } = await client.send(command); return caseId; }; // Get a list of open support cases created today. export const getTodaysOpenCases = async () => { const d = new Date(); const startOfToday = new Date(d.getFullYear(), d.getMonth(), d.getDate()); const command = new DescribeCasesCommand({ includeCommunications: false, afterTime: startOfToday.toISOString(), }); const { cases } = await client.send(command); if (cases.length === 0) { throw new Error( "Unexpected number of cases. Expected more than 0 open cases.", ); } return cases; }; // Create an attachment set. export const createAttachmentSet = async () => { const command = new AddAttachmentsToSetCommand({ attachments: [ { fileName: "example.txt", data: new TextEncoder().encode("some example text"), }, ], }); const { attachmentSetId } = await client.send(command); return attachmentSetId; }; export const linkAttachmentSetToCase = async (attachmentSetId, caseId) => { const command = new AddCommunicationToCaseCommand({ attachmentSetId, caseId, communicationBody: "Adding attachment set to case.", }); await client.send(command); }; // Get all communications for a support case. export const getCommunications = async (caseId) => { const command = new DescribeCommunicationsCommand({ caseId, }); const { communications } = await client.send(command); return communications; }; /** * @param {import('@aws-sdk/client-support').Communication[]} communications */ export const getFirstAttachment = (communications) => { const firstCommWithAttachment = communications.find( (c) => c.attachmentSet.length > 0, ); return firstCommWithAttachment?.attachmentSet[0].attachmentId; }; // Get an attachment. export const getAttachment = async (attachmentId) => { const command = new DescribeAttachmentCommand({ attachmentId, }); const { attachment } = await client.send(command); return attachment; }; // Resolve the case matching the given case ID. export const resolveCase = async (caseId) => { const shouldResolve = await inquirer.confirm({ message: `Do you want to resolve ${caseId}?`, }); if (shouldResolve) { const command = new ResolveCaseCommand({ caseId: caseId, }); await client.send(command); return true; } return false; }; /** * Find a specific case in the list of provided cases by case ID. * If the case is not found, and the results are paginated, continue * paging through the results. * @param {{ * caseId: string, * cases: import('@aws-sdk/client-support').CaseDetails[] * nextToken: string * }} options * @returns */ export const findCase = async ({ caseId, cases, nextToken }) => { const foundCase = cases.find((c) => c.caseId === caseId); if (foundCase) { return foundCase; } if (nextToken) { const response = await client.send( new DescribeCasesCommand({ nextToken, includeResolvedCases: true, }), ); return findCase({ caseId, cases: response.cases, nextToken: response.nextToken, }); } throw new Error(`${caseId} not found.`); }; // Get all cases created today. export const getTodaysResolvedCases = async (caseIdToWaitFor) => { const d = new Date("2023-01-18"); const startOfToday = new Date(d.getFullYear(), d.getMonth(), d.getDate()); const command = new DescribeCasesCommand({ includeCommunications: false, afterTime: startOfToday.toISOString(), includeResolvedCases: true, }); const { cases, nextToken } = await client.send(command); await findCase({ cases, caseId: caseIdToWaitFor, nextToken }); return cases.filter((c) => c.status === "resolved"); }; const main = async () => { let caseId; try { console.log(wrapText("Welcome to the AWS Support basic usage scenario.")); // Verify that the account is subscribed to support. await verifyAccount(); // Provided a truncated list of services and prompt the user to select one. const selectedService = await getService(); // Provided the categories for the selected service and prompt the user to select one. const selectedCategory = await getCategory(selectedService); // Provide the severity available severity levels for the account and prompt the user to select one. const selectedSeverityLevel = await getSeverityLevel(); // Create a support case. console.log("\nCreating a support case."); caseId = await createCase({ selectedService, selectedCategory, selectedSeverityLevel, }); console.log(`Support case created: ${caseId}`); // Display a list of open support cases created today. const todaysOpenCases = await retry( { intervalInMs: 1000, maxRetries: 15 }, getTodaysOpenCases, ); console.log( `\nOpen support cases created today: ${todaysOpenCases.length}`, ); console.log(todaysOpenCases.map((c) => `${c.caseId}`).join("\n")); // Create an attachment set. console.log("\nCreating an attachment set."); const attachmentSetId = await createAttachmentSet(); console.log(`Attachment set created: ${attachmentSetId}`); // Add the attachment set to the support case. console.log(`\nAdding attachment set to ${caseId}`); await linkAttachmentSetToCase(attachmentSetId, caseId); console.log(`Attachment set added to ${caseId}`); // List the communications for a support case. console.log(`\nListing communications for ${caseId}`); const communications = await getCommunications(caseId); console.log( communications .map( (c) => `Communication created on ${c.timeCreated}. Has ${c.attachmentSet.length} attachments.`, ) .join("\n"), ); // Describe the first attachment. console.log(`\nDescribing attachment ${attachmentSetId}`); const attachmentId = getFirstAttachment(communications); const attachment = await getAttachment(attachmentId); console.log( `Attachment is the file '${ attachment.fileName }' with data: \n${new TextDecoder().decode(attachment.data)}`, ); // Confirm that the support case should be resolved. const isResolved = await resolveCase(caseId); if (isResolved) { // List the resolved cases and include the one previously created. // Resolved cases can take a while to appear. console.log( "\nWaiting for case status to be marked as resolved. This can take some time.", ); const resolvedCases = await retry( { intervalInMs: 20000, maxRetries: 15 }, () => getTodaysResolvedCases(caseId), ); console.log("Resolved cases:"); console.log(resolvedCases.map((c) => c.caseId).join("\n")); } } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie unter den folgenden Themen in der AWS SDK for JavaScript APIReferenz.
-
Aktionen
Das folgende Codebeispiel zeigt die VerwendungAddAttachmentsToSet
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { AddAttachmentsToSetCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Create a new attachment set or add attachments to an existing set. // Provide an 'attachmentSetId' value to add attachments to an existing set. // Use AddCommunicationToCase or CreateCase to associate an attachment set with a support case. const response = await client.send( new AddAttachmentsToSetCommand({ // You can add up to three attachments per set. The size limit is 5 MB per attachment. attachments: [ { fileName: "example.txt", data: new TextEncoder().encode("some example text"), }, ], }), ); // Use this ID in AddCommunicationToCase or CreateCase. console.log(response.attachmentSetId); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie AddAttachmentsToSetunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungAddCommunicationToCase
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { AddCommunicationToCaseCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { let attachmentSetId; try { // Add a communication to a case. const response = await client.send( new AddCommunicationToCaseCommand({ communicationBody: "Adding an attachment.", // Set value to an existing support case id. caseId: "CASE_ID", // Optional. Set value to an existing attachment set id to add attachments to the case. attachmentSetId, }), ); console.log(response); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie AddCommunicationToCaseunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungCreateCase
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { CreateCaseCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Create a new case and log the case id. // Important: This creates a real support case in your account. const response = await client.send( new CreateCaseCommand({ // The subject line of the case. subject: "IGNORE: Test case", // Use DescribeServices to find available service codes for each service. serviceCode: "service-quicksight-end-user", // Use DescribeSecurityLevels to find available severity codes for your support plan. severityCode: "low", // Use DescribeServices to find available category codes for each service. categoryCode: "end-user-support", // The main description of the support case. communicationBody: "This is a test. Please ignore.", }), ); console.log(response.caseId); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie CreateCaseunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeAttachment
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { DescribeAttachmentCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Get the metadata and content of an attachment. const response = await client.send( new DescribeAttachmentCommand({ // Set value to an existing attachment id. // Use DescribeCommunications or DescribeCases to find an attachment id. attachmentId: "ATTACHMENT_ID", }), ); console.log(response.attachment?.fileName); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie DescribeAttachmentunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeCases
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { DescribeCasesCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Get all of the unresolved cases in your account. // Filter or expand results by providing parameters to the DescribeCasesCommand. Refer // to the TypeScript definition and the API doc for more information on possible parameters. // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-support/interfaces/describecasescommandinput.html const response = await client.send(new DescribeCasesCommand({})); const caseIds = response.cases.map((supportCase) => supportCase.caseId); console.log(caseIds); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie DescribeCasesunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeCommunications
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { DescribeCommunicationsCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Get all communications for the support case. // Filter results by providing parameters to the DescribeCommunicationsCommand. Refer // to the TypeScript definition and the API doc for more information on possible parameters. // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-support/interfaces/describecommunicationscommandinput.html const response = await client.send( new DescribeCommunicationsCommand({ // Set value to an existing case id. caseId: "CASE_ID", }), ); const text = response.communications.map((item) => item.body).join("\n"); console.log(text); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie DescribeCommunicationsunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeSeverityLevels
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { DescribeSeverityLevelsCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; export const main = async () => { try { // Get the list of severity levels. // The available values depend on the support plan for the account. const response = await client.send(new DescribeSeverityLevelsCommand({})); console.log(response.severityLevels); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie DescribeSeverityLevelsunter AWS SDK for JavaScript APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungResolveCase
.
- SDKfür JavaScript (v3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. import { ResolveCaseCommand } from "@aws-sdk/client-support"; import { client } from "../libs/client.js"; const main = async () => { try { const response = await client.send( new ResolveCaseCommand({ caseId: "CASE_ID", }), ); console.log(response.finalCaseStatus); return response; } catch (err) { console.error(err); } };
-
APIEinzelheiten finden Sie ResolveCaseunter AWS SDK for JavaScript APIReferenz.
-