AWS サポート ケースのプログラミング - AWS サポート

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS サポート ケースのプログラミング

AWS サポート API を使用すると、サポートケースを作成して、問題の調査中や AWS サポート スタッフとの会話中のやり取りを追加できます。このトピックではAWS サポート、中心AWS サポートの動作の多くをモデル化する、 サービスでのアクションの使用を示します。

AWS サポート に使用できるアクションとパラメータのリストについては、AWS サポート API Reference を参照してください。

Overview

このトピックでは、AWS サポートの使用方法を説明するために、Java コード例を使用しています。SDK サポートの詳細については、サンプルコードとライブラリを参照してください。

注記

AWS サポート への呼び出しがサービスの制限に達した場合は、「AWS でのエラーの再試行とエクスポネンシャルバックオフ」に記載されている推奨事項を参照してください。

IAM API での AWS サポート の使用

AWS Identity and Access Management (IAM) は AWS サポート API でサポートされています。詳細については、「 」を参照してくださいAWS サポート へのアクセス

AWS サポート クライアントの作成

次の Java コードスニペットは、AWSSupportClient を作成し、AWSSupportService の呼び出しに使用する方法を示しています。createClient メソッドは、AWS コンストラクタをパラメータなしで呼び出して AWSSupportClient() 認証情報を取得します。呼び出されたコンストラクタは、認証情報プロバイダチェーンから認証情報を取得します。このプロセスの詳細については、の「チュートリアル: IAM ロールを使用したアクセス許可の付与」および「 AWS SDK for Java 」を参照してくださいAWS SDK for Java

AWS 認証情報の詳細については、の「 AWS セキュリティ認証情報」を参照してくださいAWS General Reference

private static AWSSupportClient createClient() { AWSSupportClient client = new AWSSupportClient(); client.setEndpoint("https://support.us-east-1.amazonaws.com"); return client; }

重大度の検出Amazon Web Servicesと問題

AWS サポート Java クライアントは、CreateCaseRequestにプログラミングを使用してケースを送信するための AWS サポート タイプを提供します。CreateCaseRequest 構造には、リクエストパラメータが入力され、createClient インスタンスの AWSSupportClient メソッドに渡されます。これらのパラメータには AWS サービスを指定するコードが含まれ、大文字と小文字が区別されます。

以下の Java コードスニペットは、AWS サポート DescribeServices アクションと DescribeSeverityLevel アクションの呼び出しを示しています。

// DescribeServices example public static void getServiceCodes(AWSSupportClient client) { DescribeServicesResult result = client.describeServices(); for (Service service : result.getServices()) { System.out.println("Service code (name): " + service.getCode() + "(" + service.getName() + ")"); for (Category category : service.getCategories()) { System.out.println(" Category code (name): " + category.getCode() + "(" + category.getName() + ")"); } } } // DescribeSeverityLevels example public static void getSeverityLevels(AWSSupportClient client) { DescribeSeverityLevelsResult result = client.describeSeverityLevels(); for (SeverityLevel level : result.getSeverityLevelsList()) { System.out.println("Severity level (name): " + level.getCode() + level.getName() + ")"); } }

呼び出しごとに、JSON 形式のオブジェクトのリストが返されます。DescribeServices はサービスコードとそれに対応する名前を返し、 は重大度とそれに対応する名前DescribeSeverityLevelsを返します。また、DescribeServices も、各 AWS サポート サービスに適用される AWSカテゴリのリストを返します。これらのカテゴリは、CreateCase アクションを使用してサポートケースを開くためにも使用されます。AWS サポートサイト自体からも取得できますが、AWS サポートサービスは常にこの情報の最新版を返します。

添付セットの作成

ケースにファイルを添付するには、ケースを作成する前に添付セットに添付を追加する必要があります。1 つの添付ファイルセットに最大 3 ファイルを添付でき、セット内の添付ファイルあたりの最大サイズは 5 MB です。詳細については、「AddAttachmentsToSet」を参照してください。

次の Java コードスニペットは、テキストファイル添付を作成し、それを添付セットに追加して、ケースに追加するための添付セットの ID を取得します。

public static string createAttachmentSet() throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // Get content and file name for an attachment. System.out.println("Enter text content for an attachment to the case: "); String attachmentcontent = null; try { attachmentcontent = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter the file name for the attachment: "); String attachmentfilename = null; try { attachmentfilename = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } // Create the attachment. Attachment attachment1 = new Attachment(); attachment1.setData(ByteBuffer.wrap(attachmentcontent.getBytes())); attachment1.setFileName("attachmentfilename"); // Add the attachment to an array list. List<Attachment> attachments = new ArrayList<Attachment>(); attachments.add(attachment1); // Create an attachment set and add the attachment array list to it. AddAttachmentsToSetRequest addAttachmentsToSetRequest = new AddAttachmentsToSetRequest(); addAttachmentsToSetRequest.setAttachments(attachments); AddAttachmentsToSetResult addAttachmentsToSetResult = client.addAttachmentsToSet(addAttachmentsToSetRequest); // Get the ID of the attachment set. String attachmentsetid = addAttachmentsToSetResult.getAttachmentSetId(); System.out.println("Attachment ID: " + attachmentsetid); return attachmentsetid; }

サポートケースの作成

AWS サポートサービスを使用して AWS サポートケースを作成するには、以下の情報を CreateCaseRequest インスタンスに設定します。

  • ServiceCode – 前のセクションで説明したように、AWS サポート アクションを呼び出して取得した DescribeServices サービスコード。

  • CategoryCode – サポートケースの問題のタイプを説明するカテゴリコード。

  • Language – AWS サポート がサポートを提供する言語のコード。現在、AWS では英語 (en) と日本語 (ja) がサポートされています。

  • CcEmailAddresses – その後のコミュニケーションのコピーを受け取るメールアドレスのリスト。

  • CommunicationBody – 最初のケース送信の本文のテキスト。

  • Subject – サポートケースの表題。

  • SeverityCode – の呼び出しによって返された値の 1 つ。。DescribeSeverityLevels

  • AttachmentSetId – (オプション) ケースに含まれる添付ファイルのセットの ID。AddAttachmentsToSet アクションは ID を返します。

次の Java コードスニペットは、コマンドラインから各ケース作成パラメータの値を収集します。次に、CreateCaseRequest インスタンスが入力され、AWS サポート インスタンスの createCase メソッドを呼び出して AWSSupportClientに渡します。呼び出しが完了すると、AWS サポート CaseId 値が以下の形式で返されます。

case-123456789012-muen-2012-74a757cd8cf7558a
注記

AWS サポート CaseIdDisplayId のフィールドがあります。DisplayId フィールドは AWS サポートサイトに表示されるケース番号に対応します。CaseId フィールドは、プログラミングによる AWS サポートサービスとの交信に使用されます。2 つのフィールドは、CaseDetails データ型で公開されます。

public static void createCase(AWSSupportClient client) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter an AWS service code: "); String servicecode = null; try { servicecode = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter a category code: "); String categorycode = null; try { categorycode = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter a language code, 'en' for English: "); String language = null; try { language = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter an email address to copy on correspondence: "); String ccemailaddress = null; try { ccemailaddress = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter body text for the case: "); String communicationbody = null; try { communicationbody = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter a subject for the case: "); String casesubject = null; try { casesubject = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter the severity code for the case: "); String severitycode = null; try { severitycode = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter the attachment set ID for the case: "); String attachmentsetid = null; try { attachmentsetid = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } CreateCaseRequest request = new CreateCaseRequest() .withServiceCode(servicecode) .withCategoryCode(categorycode) .withLanguage(language) .withCcEmailAddresses(ccemailaddress) .withCommunicationBody(communicationbody) .withSubject(casesubject) .withSeverityCode(severitycode) .withAttachmentSetId(attachmentsetid); CreateCaseResult result = client.createCase(request); System.out.println("CreateCase() Example: Case created with ID " + result.getCaseId()); }

サポートケースコミュニケーションの取得と更新

AWS サポート ケースは通常、お客様と AWS サポート プロフェッショナルとのコミュニケーションになります。AWS サポート には、このコミュニケーションを取得するための DescribeCommunications および DescribeAttachment アクション、ケースを更新するための AddAttachmentsToSet および AddCommunicationToCase アクションが用意されています。これらのアクションでは、Communication データ型を使用して、更新をサービスに渡したり、コードに返したりします。

次の Java コードスニペットは、AWS サポートケースにコミュニケーションを追加します。たとえば、便宜性のためにプライベート PrintCommunications メソッドが用意されています。

public static void addCommunication(AWSSupportClient client) { System.out.println("Enter the CaseID for the case you want to update."); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String caseid = null; try { caseid = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } System.out.println("Enter text you want to add to this case."); String addcomm = null; try { addcomm = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } AddCommunicationToCaseRequest request = new AddCommunicationToCaseRequest().withCaseId(caseid) .withCommunicationBody(addcomm); client.addCommunicationToCase(request); System.out.println( "AddCommunication() Example: Call GetCommunications() " + "if you want to see if the communication was added."); } // DescribeCommunications example public static void getCommunications(AWSSupportClient client) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String caseNumber = null; System.out.println("Enter a CaseID"); caseNumber = reader.readLine().trim(); { DescribeCommunicationsRequest request = new DescribeCommunicationsRequest() .withCaseId(caseNumber.toString()); DescribeCommunicationsResult result = client.describeCommunications(request); printCommunications(result.getCommunications()); // Get more pages. while (result.getNextToken() != null) { request.setNextToken(result.getNextToken()); result = client.describeCommunications(request); printCommunications(result.getCommunications()); System.out.println( "GetCommunications() Example: Case communications retrieved" + " for case number " + request.getCaseId().toString()); } } } private static void printCommunications(List<Communication> communications) { for (Communication communication : communications) { System.out.println("SubmittedBy: " + communication.getSubmittedBy()); System.out.println(" Body: " + communication.getBody()); } }
注記

DescribeCommunications は、サポートケースから、直近の 5 つのコミュニケーションを返します。また、DescribeCommunicationsCaseId 値のリストを取得し、1 回の呼び出しで複数のケースのコミュニケーションを取得できます。

すべてのサポートケース情報の取得

AWS サポートDescribeCases アクションを呼び出すことで、ケースに関連するすべての情報を取得できます。DescribeCasesRequest データ型に、ClientId 要求が正常に返されたときに、各ケースによって返される createCase 値のリストを入力します。

次の Java コードスニペットは、コンソールから CaseId 値を受け取り、DescribeCasesRequest アクションで使用するために DescribeCases インスタンスを入力します。便宜性のためにプライベート printCases メソッドが用意されています。

public static void getCases(AWSSupportClient client) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter an AWS サポート Case ID"); String caseid = null; try { caseid = reader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } DescribeCasesRequest request = new DescribeCasesRequest(); request.withCaseIdList(caseid); DescribeCasesResult result = client.describeCases(request); printCases(result.getCases()); // Get more pages. while (result.getNextToken() != null) { request.setNextToken(result.getNextToken()); result = client.describeCases(request); printCases(result.getCases()); } } private static void printCases(List<CaseDetails> caseDetailsList) { for (CaseDetails caseDetails : caseDetailsList) { System.out.println( "Case ID: " + caseDetails.getCaseId()); // This ID is for API use. System.out.println( " Display ID: " + caseDetails.getDisplayId()); // This ID is displayed on the AWS サポート website. System.out.println(" Language: " + caseDetails.getLanguage()); System.out.println(" Status: " + caseDetails.getStatus()); System.out.println(" Subject: " + caseDetails.getSubject()); System.out.println("Recent Communications: " + caseDetails.getRecentCommunications()); } }
注記

DescribeCases アクションは、取得するケースの数、ケースのタイプ、詳細情報の量を制御できるパラメータを受け取ります。詳細については、「DescribeCases アクション」を参照してください。

サポートケースの解決

AWS サポート には、サポートケースを各自で解決するための ResolveCase アクションが用意されています。次の Java コードの例は使用方法を示します。

public static void resolveSupportCase(AWSSupportClient client) { System.out.println( "Enter the AWS サポート case ID for the case you want to resolve."); BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); String caseid = null; try { caseid = BR.readLine().trim(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } ResolveCaseResult rcr = client.resolveCase(new ResolveCaseRequest().withCaseId(caseid)); System.out.println("Initial case status: " + rcr.getInitialCaseStatus()); System.out.println("Final case status: " + rcr.getFinalCaseStatus()); }