翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の開始方法 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システムが次のいずれかを使用している場合。
-
特定のロール — 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または他のクラウドにある場合は、次の手順を使用して、シークレットアクセスキーを使用した認証用の接続を確立します。
-
IAM ユーザーの作成 詳細については、IAM「ユーザーの作成 (コンソール)」を参照してください。
-
IAM ユーザーの名前SapDemoSID
として を使用します。 SID
はシステムのSAPシステム ID です。
-
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 のインストール」を参照してください。
を設定する前にSDK、必要な認可があることを確認してください。詳細については、「 SAP認証」を参照してください。
設定手順については、次のタブを参照してください。
- SDK for SAP ABAP
-
/AWS1/IMG
トランザクションを実行して、 SDKの 実装ガイドを開きますSAPABAP。このトランザクションを実行するには、SAPシステムのコマンドバー/n/AWS1/IMG
に と入力し、Enter を選択します。
次の設定を完了します。
-
[技術的前提条件] に移動します。
-
[グローバル設定] → [シナリオの設定] に移動します。
-
[グローバル設定] → [技術設定] に移動します。
-
[ランタイム設定] → [ログとトレース] に移動します。
-
[新規エントリ] を選択します。
-
[Save] を選択します。
-
[ランタイム設定] → [アクティブシナリオ] に移動します。
オンプレミスシステムの前提条件
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 リージョンを入力します。
-
認証方法:
-
IAM ロールの無効化は空白のままにします。
-
[Save] を選択します。
-
IAM ロールマッピングツリーブランチをクリックします。
- SDK for SAP ABAP - BTP edition
-
SAP 認証情報ストアを使用して認証を設定します。詳細については、「認証情報ストアの使用SAP」を参照してください。
ウェブブラウザでABAP環境を開き、カスタムビジネス設定アプリケーションに移動します。
ステップ 5: SAP ユーザーを承認する
SAP デフォルトでは、 ユーザーは AWS 機能を使用する権限がありません。ユーザーは、認証を使用して明示的にSAP認証されている必要があります。詳細については、次のタブを参照してください。
- SDK for SAP ABAP
-
PFCGロールを作成する
PFCGロールをSAPユーザーに割り当てる
ZAWS_SDK_DEMO_TESTUSER
ロールが割り当てられているユーザーには、DEMO
SDKプロファイルで設定された設定で関数を使用する AWS SDK権限が付与されます。承認されたユーザーは、そのプロファイルのTESTUSER
論理IAMロールにマッピングされたIAMロールも引き受けます。
- 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] を選択します。
作成されたビジネスロールに割り当てられたビジネスユーザーには、DEMO
SDKプロファイルで設定された設定で AWS SDK関数を使用する権限が付与されます。承認されたユーザーは、そのプロファイルのTESTUSER
論理IAMロールにマッピングされたIAMロールも引き受けます。
ステップ 6: コードを記述する
詳細については、次のタブを参照してください。
- SDK for SAP ABAP
-
-
トランザクション 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
-
-
ABAP クラスを作成する必要があるパッケージを右クリックし、新規 > ABAP クラス を選択します。
-
クラス名ZCL_DEMO_XL8_SIMPLE
に を入力し、クラスの説明を追加します。[次へ] を選択します。
-
トランスポートリクエストを作成または選択します。完了 を選択します。
次のコードを追加します。
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 アカウントを準備する。