の開始方法 AWS SDK for SAP ABAP - AWS SDK の SAP ABAP

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

の開始方法 AWS SDK for SAP ABAP

このセクションでは、 の使用を開始する方法について説明しますSDK。これにはSDK、 のインストール、基本設定の実行、フレーズをある言語から別の言語に翻訳する Hello World コード例の作成に関する情報が含まれます。を初めて使用する場合は AWS SDK、サンドボックス環境でこれらのステップを実行することをお勧めします。

ステップ 1: AWS アカウントを準備する

SDK の の使用を開始するにはSAPABAP、アクティブな が必要です AWS アカウント 。SAP システムがオンプレミス、SAPビジネステクノロジープラットフォーム (BTP)、または別のクラウドプロバイダーでホストされている AWS アカウント 場合でも、 が必要です。

SAP システムが AWS クラウドで実行されている場合、 内の サービスを呼び出し AWS ます AWS アカウント。

IAM SAPユーザーの ロール

  • AWS Identity and Access Management ユーザーガイド」に記載されている手順で IAMロールを作成します。詳細については、「 AWS サービスにアクセス許可を委任するロールの作成」を参照してください。後で使用するために、IAMロールの Amazon リソースネーム (ARN) を書き留めます。

  • ユースケースEC2として Amazon を選択します。

  • ロールの名前として SapDemoTranslate を使用します。

  • TranslateReadOnly プロファイルをロールにアタッチします。

  • SAP システムがロールを引き受けられるようにするには、ロールに次のエンティティが必要です。"111122223333" を、使用する AWS アカウント番号で置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "111122223333" } } ] }

    この例では、 の AWS アカウント プリンシパルがロールを引き受け"111122223333"ることができることを示しています。これは、 に適した広範なアクセス許可です proof-of-concept。本番稼働環境には、以下の例のように、より絞り込んだプリンシパルを使用できます。

    • 特定のユーザー — SAPシステムが次のいずれかを使用している場合。

      • SSFオンプレミスSAPシステムから暗号化された認証情報

      • BTP、ABAP環境の SAP Credential Store SAP サービスからの認証情報

    • 特定のロール — SAPシステムが Amazon にありEC2、インスタンスプロファイルがある場合。

    • Amazon EC2 – SAPシステムが Amazon にありEC2、インスタンスプロファイルがない場合

詳細については、IAM「セキュリティのベストプラクティス」を参照してください。

認証

認証は、SAPシステムがホストされている場所によって異なります。

AWS クラウド上

SAP システムが実行されているEC2インスタンスに、次のアクセス許可を持つインスタンスプロファイルがあることを確認します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/SapDemoTranslate" } ] }

前のステップで書き留めARNた を追加します。

このアクセス許可により、SAPシステムはABAPユーザーに代わってSapDemoTranslateロールを引き受けることができます。

オンプレミスSAPBTPまたはその他のクラウド

SAP システムがオンプレミス、オンプレミス、SAPBTPまたは他のクラウドにある場合は、次の手順を使用して、シークレットアクセスキーを使用した認証用の接続を確立します。

  1. IAM ユーザーの作成 詳細については、IAM「ユーザーの作成 (コンソール)」を参照してください。

  2. IAM ユーザーの名前SapDemoSIDとして を使用します。 SIDはシステムのSAPシステム ID です。

  3. SapDemoTranslate ロールをこのユーザーに割り当てます。

access_key と は保持しますsecret_access_key。これらの認証情報はSAPシステムで設定する必要があります。

注記

SAP システムがオンプレミス、オンプレミス、SAPBTPまたは他のクラウドにある場合は、次のいずれかのオプションを使用して認証できます。

手順 2: SDK をインストールする

インストール手順については、次のタブを参照してください。

SDK for SAP ABAP

SAP システム内のSAPABAPトランスポートSDKに をインポートします。トランスポートは任意のクライアントにインポートできます。詳細については、「 のインストールSDK」を参照してくださいSAPABAP

SDK for SAP ABAP - BTP edition

Deploy Product SAP ABAP アプリケーションBTPを使用して - Edition SDKに をインストールします。 詳細については、「 - SAP ABAP BTPエディション SDK のインストール」を参照してください。

ステップ 3: SDK を設定する

を設定する前にSDK、必要な認可があることを確認してください。詳細については、「 SAP認証」を参照してください。

設定手順については、次のタブを参照してください。

SDK for SAP ABAP

/AWS1/IMG トランザクションを実行して、 SDKの 実装ガイドを開きますSAPABAP。このトランザクションを実行するには、SAPシステムのコマンドバー/n/AWS1/IMG に と入力し、Enter を選択します。

次の設定を完了します。

  • [技術的前提条件] に移動します。

  • [グローバル設定][シナリオの設定] に移動します。

  • [グローバル設定][技術設定] に移動します。

  • [ランタイム設定][ログとトレース] に移動します。

    • [新規エントリ] を選択します。

      • トレースレベル: トレースなし。

      • 最大ダンプ行: 100

      • OPT-IN: enh テレメトリ : 空白のままにします。

    • [Save] を選択します。

  • [ランタイム設定][アクティブシナリオ] に移動します。

    • [新規シナリオ]DEFAULT を選択します。

    • [シナリオ変更をコミット] を選択します。

    • プロンプトを受け入れます。

オンプレミスシステムの前提条件

SAP システムがオンプレミスまたは別のクラウドで実行されている場合、認証情報はSAPデータベースに保存する必要があります。認証情報は を使用して暗号化SAPSSFされ、 SAPの などの設定済みの暗号化ライブラリが必要です CommonCryptoLib。

の SSFSDKを設定する手順はSAPABAP、/AWS1/IMGトランザクションで説明されています。

注記

上記の前提条件は、SAPシステムが Amazon で実行されている場合には適用されませんEC2。SAP Amazon で実行されている システムは、Amazon EC2インスタンスメタデータから有効期間がEC2短く、認証情報を自動的にローテーションします。

SDK for SAP ABAP - BTP edition

ウェブブラウザでABAP環境を開き、カスタムビジネス設定アプリケーションに移動します。

次の設定を完了します。

  • 「シナリオの設定」を参照してください。

  • 「技術設定」に移動します。

ステップ 4: 機能のセットアップ

セットアップ手順については、次のタブを参照してください。

SDK for SAP ABAP

トランザクション (コマンドバー/n/AWS1/IMG/AWS1/IMGと入力し、Enter を選択) を実行して、 の実装ガイドを開きます AWS SDK。

  • アプリケーション設定SDKプロファイル に移動します。

    • [新規エントリ] を選択します。

      • プロファイル: DEMO

      • 説明: Demo profile

      • [Save] を選択します。

  • 作成したエントリを強調表示し、[認証と設定] ツリーブランチをクリックします。

    • [新規エントリ] を選択します。

      • SID: 現在使用しているSAPシステムのシステム ID。

      • クライアント : 現在使用しているSAPシステムのクライアント。

      • シナリオ ID : Basis 管理者が作成したDEFAULTシナリオを見つけるドロップダウンリスト。

      • AWS リージョン : 呼び出し先の AWS リージョンを入力します。SAP システムで が実行されている場合は AWS、実行中の AWS リージョンを入力します。

      • 認証方法:

        • SAP システムが Amazon で実行されている場合は、メタデータ経由でインスタンスロールを選択しますEC2。

        • SAP システムがオンプレミスまたは別のクラウドで実行されている場合は、SSFStorage から認証情報を選択します。

          • [認証情報の設定] を選択します。

          • 前のステップで作成したアクセスキー ID とシークレットアクセスキーを入力します。

    • IAM ロールの無効化は空白のままにします。

    • [Save] を選択します。

  • IAM ロールマッピングツリーブランチをクリックします。

    • [新規エントリ] を選択します。

      • [シーケンス番号] に 010 と入力します。

      • 論理IAMロール : と入力しますTESTUSER。

      • IAM 「ロールARN」と入力します。前のステップで作成したTranslateReadOnlyポリシーを含むIAMロールの arn:aws: を入力します。

SDK for SAP ABAP - BTP edition

SAP 認証情報ストアを使用して認証を設定します。詳細については、「認証情報ストアの使用SAP」を参照してください。

ウェブブラウザでABAP環境を開き、カスタムビジネス設定アプリケーションに移動します。

  • SDK プロファイル に移動します。

    • 編集 を選択して、新しいプロファイルを作成します。

      • プロファイル: DEMO

      • 説明: Demo profile

  • 作成したエントリの横にある右矢印キーを選択して、認証と設定タブに移動します。

    [新規エントリ] を選択します。

    • SID: 現在使用しているSAPシステムのシステム ID。

    • クライアント : 現在使用しているSAPシステムのクライアント。

    • シナリオ ID : Basis 管理者が作成したDEFAULTシナリオを見つけるドロップダウンリスト。

    • AWS リージョン : 呼び出し先の AWS リージョンを入力します。SAP システムで が実行されている場合は AWS、実行中の AWS リージョンを入力します。

    • 認証方法: 認証情報ストア からSAP認証情報を選択します。

    • SAP 認証情報ストアに保存されている認証情報の名前空間キー名を入力します。

    • SDK for - BTP Edition と SAPCredential Store SAP ABAP との通信を確立するために作成された通信配置の名前を入力します。

    • IAM ロールの無効化は空白のままにします。

  • 作成したエントリの横にある右矢印キーを右クリックして、IAMロールマッピングタブに移動します。

    [新規エントリ] を選択します。

    • [シーケンス番号] に 010 と入力します。

    • 論理IAMロール : と入力しますTESTUSER。

    • IAM 「ロールARN」と入力します。前のステップで作成したTranslateReadOnlyポリシーを含むIAMロールの arn:aws: を入力します。

ステップ 5: SAP ユーザーを承認する

SAP デフォルトでは、 ユーザーは AWS 機能を使用する権限がありません。ユーザーは、認証を使用して明示的にSAP認証されている必要があります。詳細については、次のタブを参照してください。

SDK for SAP ABAP

PFCGロールを作成する

  • トランザクション PFCG に移動します

  • ロール名 ZAWS_SDK_DEMO_TESTUSER を入力し、[単一ロールを作成] を選択します。

    • 説明: Role for demo AWS SDK functionality

    • [認証] タブに移動します。

    • [認証データを変更] を選択し、情報ポップアップを受け入れます。

    • [テンプレートを選択] ポップアップで、[テンプレートを選択しない] を選択します。

    • ツールバーから [手動で追加] を選択します。

    • 以下の認証オブジェクトを追加します。

      • /AWS1/LROL

      • /AWS1/SESS

    • 認証ツリーに次のように入力します。

      • にアクセスするためのプロファイルAWSAPIs:DEMO

      • 論理IAMロール: TESTUSER

    • [Save] を選択します。

    • [生成] を選択します。

    • [戻る] を選択します。

    • [保存] を選択してロールを保存します。

PFCGロールをSAPユーザーに割り当てる

ZAWS_SDK_DEMO_TESTUSERロールが割り当てられているユーザーには、DEMOSDKプロファイルで設定された設定で関数を使用する AWS SDK権限が付与されます。承認されたユーザーは、そのプロファイルのTESTUSER論理IAMロールにマッピングされたIAMロールも引き受けます。

  • トランザクション SU01 を実行します。

    • 機能をテスト AWS SDKするSAPユーザーのユーザー ID を入力します。

    • [変更] を選択します。

    • [ロール] タブに移動し、ユーザーに ZAWS_SDK_DEMO_TESTUSER ロールを割り当てます。

    • [Save] を選択します。

SDK for SAP ABAP - BTP edition

ビジネスロールを作成する

  • ウェブブラウザでABAP環境を開き、ビジネスロールの維持アプリケーションに移動します。

  • テンプレート から作成 を選択し、次の詳細を入力します。

    • テンプレート – を選択します/AWS1/RT_BTP_ENDUSER

    • 新しいビジネスロール ID – ID を入力します。

    • 新しいビジネスロールの説明 – 説明を入力します。

  • OK を選択すると、ビジネスロールのページが表示されます。

  • 「一般的なロールの詳細」タブで、アクセスカテゴリ に移動し、書き込み、読み取り、値ヘルプフィールドを制限 に設定します。

  • 「制限を維持」を選択し、左側のナビゲーションペインから「割り当てられた制限タイプ」を展開します。「制限と値」セクションの次のフィールドを更新します。

    • SDK 「セッションを選択」で、SDKプロファイル の横にある鉛筆アイコンを選択し、範囲タブに移動します。 と入力しDEMOの追加 を選択します。

    • 論理IAMロールの選択 で、論理IAMロール の横にある鉛筆アイコンを選択し、範囲 タブに移動します。と入力しTESTUSERの追加 を選択します。

      SDK プロファイル の横にある鉛筆アイコンを選択し、範囲タブに移動します。を入力しDEMO追加 を選択します。

  • ビジネスロールテンプレートに戻り、ビジネスユーザータブを開きます。追加 を選択して、新しく作成されたビジネスロールを、SDK機能をテストするSAPビジネスユーザーに割り当てます。[Save] を選択します。

作成されたビジネスロールに割り当てられたビジネスユーザーには、DEMOSDKプロファイルで設定された設定で AWS SDK関数を使用する権限が付与されます。承認されたユーザーは、そのプロファイルのTESTUSER論理IAMロールにマッピングされたIAMロールも引き受けます。

ステップ 6: コードを記述する

詳細については、次のタブを参照してください。

SDK for SAP ABAP
  1. トランザクション SE38 を開きます。

    • プログラム名として ZDEMO_TRANSLATE_HELLO_WORLD を入力します。

    • Create を選択します。

    • タイトルとして AWS SDK Hello World In Any Language を入力します。

    • タイプ: [実行プログラム] を選択します。

    • ステータス: [テストプログラム] を選択します。

    • [Save] を選択します。

    • プログラムをローカルオブジェクトとして保存します。

次のコードを追加します

*&---------------------------------------------------------------------* *& Report  ZAWS1_DEMO_XL8_SIMPLE *& *&---------------------------------------------------------------------* *& A simple demo of language translation with AWS Translate *& *&---------------------------------------------------------------------* REPORT zaws1_demo_xl8_simple. START-OF-SELECTION.   PARAMETERS pv_text TYPE /aws1/xl8boundedlengthstring DEFAULT 'Hello, World' OBLIGATORY.   PARAMETERS pv_lang1 TYPE languageiso DEFAULT 'EN' OBLIGATORY.   PARAMETERS pv_lang2 TYPE languageiso DEFAULT 'ES' OBLIGATORY.   TRY.       DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ).       DATA(go_xl8)     = /aws1/cl_xl8_factory=>create( go_session ).       DATA(lo_output) = go_xl8->translatetext(            iv_text               = pv_text            iv_sourcelanguagecode = CONV /aws1/xl8languagecodestring( pv_lang1 )            iv_targetlanguagecode = CONV /aws1/xl8languagecodestring( pv_lang2 )       ).       WRITE: / 'Source Phrase: ', pv_text.       WRITE: / 'Target Phrase: ', lo_output->get_translatedtext( ).     CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang).       WRITE: / 'ERROR' COLOR COL_NEGATIVE,                'Cannot translate from',                lo_lang->sourcelanguagecode,                'to',                lo_lang->targetlanguagecode.     CATCH cx_root INTO DATA(lo_root).       WRITE: / 'ERROR' COLOR COL_NEGATIVE, lo_root->get_text( ).   ENDTRY.
SDK for SAP ABAP - BTP edition
  1. ABAP クラスを作成する必要があるパッケージを右クリックし、新規 > ABAP クラス を選択します。

  2. クラス名ZCL_DEMO_XL8_SIMPLEに を入力し、クラスの説明を追加します。[次へ] を選択します。

  3. トランスポートリクエストを作成または選択します。完了 を選択します。

次のコードを追加します

CLASS zcl_demo_xl8_simple DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_demo_xl8_simple IMPLEMENTATION. METHOD if_oo_adt_classrun~main. TRY. " input parameters DATA(pv_text) = |Hello, World|. DATA(pv_lang1) = |EN|. DATA(pv_lang2) = |ES|. DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ). DATA(go_xl8) = /aws1/cl_xl8_factory=>create( go_session ). DATA(lo_output) = go_xl8->translatetext( iv_text = pv_text iv_sourcelanguagecode = pv_lang1 iv_targetlanguagecode = pv_lang2 ). out->write( |Source Phrase: { pv_text }| ). out->write( |Target Phrase: { lo_output->get_translatedtext( ) }| ). CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang). out->write( |ERROR - Cannot translate from { lo_lang->sourcelanguagecode } to { lo_lang->targetlanguagecode }| ). CATCH cx_root INTO DATA(lo_root). out->write( |ERROR - { lo_root->get_text( ) }| ). ENDTRY. ENDMETHOD. ENDCLASS.

を使用するABAPコードの記述方法の詳細についてはSDK、「 の使用 AWS SDK for SAP ABAP」を参照してください。

ステップ 7: アプリケーションを実行する

詳細については、次のタブを参照してください。

SDK for SAP ABAP

SE38 でアプリケーションを実行します。成功すると、次のような出力が表示されます。

Source Phrase: Hello, World Target Phrase: Hola, mundo

認証、設定、または Basis の前提条件を満たしていない場合、エラーメッセージが表示されることがあります。次の例を参照してください。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

SAP ロールが SDKプロファイルの使用を許可し、それを論理IAMロールにマッピングするが、SAPシステムがIAMロールを引き受けるようにIAMアクセス許可が設定されていない場合、出力は次のようになります。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

この場合、 で定義されているIAMロール、ユーザー、またはその両方に対するIAMアクセス許可と信頼設定を確認しますステップ 1: AWS アカウントを準備する

SDK for SAP ABAP - BTP edition

Eclipse > Run As > ABAP Application (コンソール) でアプリケーションを実行します。成功すると、次のような出力が表示されます。

Source Phrase: Hello, World Target Phrase: Hola, mundo

認証、設定、または Basis の前提条件を満たしていない場合、エラーメッセージが表示されることがあります。次の例を参照してください。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

SAP ロールが SDKプロファイルの使用を許可し、それを論理IAMロールにマッピングするが、SAPシステムがIAMロールを引き受けるようにIAMアクセス許可が設定されていない場合、出力は次のようになります。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

この場合、 で定義されているIAMロール、ユーザー、またはその両方に対するIAMアクセス許可と信頼設定を確認しますステップ 1: AWS アカウントを準備する