Ada lebih banyak contoh AWS SDK yang tersedia di repo Contoh SDK AWS Doc
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dukungan contoh menggunakan SDK untuk JavaScript (v3)
Contoh kode berikut menunjukkan cara melakukan tindakan dan mengimplementasikan skenario umum dengan menggunakan AWS SDK for JavaScript (v3) with Dukungan.
Dasar-dasar adalah contoh kode yang menunjukkan kepada Anda bagaimana melakukan operasi penting dalam suatu layanan.
Tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan dalam konteks. Sementara tindakan menunjukkan cara memanggil fungsi layanan individual, Anda dapat melihat tindakan dalam konteks dalam skenario terkait.
Setiap contoh menyertakan tautan ke kode sumber lengkap, di mana Anda dapat menemukan instruksi tentang cara mengatur dan menjalankan kode dalam konteks.
Memulai
Contoh kode berikut menunjukkan cara untuk mulai menggunakan Dukungan.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. Panggil `main () `untuk menjalankan contoh.
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); } };
-
Untuk detail API, lihat DescribeServicesdi Referensi AWS SDK for JavaScript API.
-
Hal-hal mendasar
Contoh kode berikut ini menunjukkan cara:
Dapatkan dan tampilkan layanan yang tersedia dan tingkat keparahan untuk kasus.
Buat kasus dukungan menggunakan layanan, kategori, dan tingkat keparahan yang dipilih.
Dapatkan dan tampilkan daftar kasus terbuka untuk hari ini.
Tambahkan set lampiran dan komunikasi ke kasus baru.
Jelaskan keterikatan dan komunikasi baru untuk kasus ini.
Selesaikan kasusnya.
Dapatkan dan tampilkan daftar kasus yang diselesaikan untuk hari ini.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. Jalankan skenario interaktif di terminal.
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); } };
-
Untuk detail API, lihat topik berikut di Referensi API AWS SDK for JavaScript .
-
Tindakan
Contoh kode berikut menunjukkan cara menggunakanAddAttachmentsToSet
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat AddAttachmentsToSetdi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanAddCommunicationToCase
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat AddCommunicationToCasedi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanCreateCase
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat CreateCasedi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanDescribeAttachment
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat DescribeAttachmentdi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanDescribeCases
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat DescribeCasesdi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanDescribeCommunications
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat DescribeCommunicationsdi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanDescribeSeverityLevels
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat DescribeSeverityLevelsdi Referensi AWS SDK for JavaScript API.
-
Contoh kode berikut menunjukkan cara menggunakanResolveCase
.
- SDK untuk JavaScript (v3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. 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); } };
-
Untuk detail API, lihat ResolveCasedi Referensi AWS SDK for JavaScript API.
-