

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

# AS2 メッセージの HTTP ヘッダーをカスタマイズする
<a name="as2-custom-http-headers"></a>

AS2 メッセージを取引相手に送信するときは、特定の要件を満たすように HTTP ヘッダーをカスタマイズするか、パートナーの AS2 サーバー設定との互換性を強化する必要がある場合があります。この CloudFormation テンプレートは、 を介して送信される AS2 メッセージ用にカスタマイズされた HTTP ヘッダーを有効にするインフラストラクチャを作成します AWS Transfer Family。プロキシとして機能するように Amazon API Gateway と Lambda 関数を設定し、取引パートナーの AS2 サーバーに必要なヘッダーを動的に変更できるようにします。

このテンプレートを使用して、以下を実行します。
+ アウトバウンド AS2 メッセージにカスタム HTTP ヘッダーを追加する
+ デフォルトのヘッダー値をカスタム値で上書きする
**重要**  
送信に失敗する可能性があるため、デフォルトのヘッダー値を上書きするときは注意してください。一部の AS2 ヘッダーが必要です。
+ 特定のヘッダー要件を持つ取引相手との互換性を確保する

## テンプレートの概要
<a name="template-overview"></a>

テンプレートは、次の主要コンポーネントを作成します。
+ AS2 メッセージを処理して転送する Lambda 関数
+ Lambda 関数を公開する Amazon API Gateway 
+ Lambda 関数の IAM ロールとアクセス許可
+ HTTPS サポートの条件付きリソース

テンプレートファイルは、[動的 HTTP ヘッダーテンプレート](https://s3.amazonaws.com/aws-transfer-resources/as2-templates/dynamic-http-headers.template.yml)から入手できます。

## 仕組み
<a name="how-it-works"></a>

1. Amazon API Gateway は、 から受信 AS2 メッセージを受信します AWS Transfer Family。

1. リクエストは Lambda 関数に転送されます。

1. Lambda 関数はリクエストを処理し、必要に応じてヘッダーを追加または変更します。

1. その後、変更されたリクエストはパートナーの AS2 サーバーに転送されます。

1. パートナーのサーバーからのレスポンスは、Lambda と Amazon API Gateway を介して に返されます AWS Transfer Family。

## 主な機能
<a name="key-features"></a>
+ *動的ヘッダー変更：* サブジェクトヘッダーのカスタマイズと、その他の必須ヘッダーの追加を許可します。
+ *プロトコルのサポート：* HTTP プロトコルと HTTPS プロトコルの両方で動作します。
+ *柔軟な設定：* パートナーホスト、ポート、パスの指定を許可します。

## 実装の詳細
<a name="implementation-details"></a>

テンプレートは、次の主要コンポーネントを実装します。

### Lambda 関数
<a name="lambda-function"></a>

このソリューションの中核となるのは、以下の Node.js Lambda 関数です。
+ Amazon API Gateway からリクエストを受信する
+ 設定と受信リクエストデータに基づいてヘッダーを変更します
+ 変更されたリクエストをパートナーの AS2 サーバーに転送します
+ HTTP プロトコルと HTTPS プロトコルの両方を処理します
+ エラー処理とログ記録を含む

### Amazon API Gateway
<a name="api-gateway"></a>

HTTP API は次のように設定されます。
+ 受信 AS2 メッセージを受信する
+ Lambda 関数にリクエストをルーティングする
+ レスポンスを に返す AWS Transfer Family

### テンプレートパラメータ
<a name="as2-header-template-parameter-details"></a>

次のようにテンプレートパラメータの情報を入力します。これらのパラメータはすべて文字列であることに注意してください。
+ `Environment`: このパラメータは、テンプレートが作成するリソースに名前を付けるために使用されます。開発環境用か本番環境用かです。有効な値は **dev** と **prod** です。
+ `PartnerHost`: AS2 パートナーサーバーの IP アドレスまたはホスト名。
+ `PartnerPort`: AS2 パートナーサーバーのポート番号。指定しない場合、デフォルトは HTTP の場合は 80、HTTPS の場合は 443 です。
+ `PartnerPath`: パートナーサーバーの AS2 エンドポイントへのパス
+ `ProtocolType`: AS2 通信に使用するプロトコル: 有効な値は **HTTP** と **HTTPS** です。

### 条件付きリソース
<a name="conditional-resources"></a>

HTTPS サポートの場合、テンプレートは条件付きで以下を作成します。
+ CA 証明書用の Lambda レイヤー
+ Lambda 関数の HTTPS 固有の設定

## デプロイと使用
<a name="deployment-and-usage"></a>

**CloudFormation テンプレートを使用して AS2 HTTP ヘッダーをカスタマイズするには**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

1. 左のナビゲーションペインで **[Stacks]** (スタック) をクリックします。

1. [**スタックの作成**] を選択し、[**With new resources (standard) 新しいリソースを使用 (標準)**] を選択します。

1. **「前提条件 - テンプレートを準備する**」セクションで、**「既存のテンプレートを選択する**」を選択します。

1. このリンク、[動的 HTTP ヘッダーテンプレート](https://s3.amazonaws.com/aws-transfer-resources/as2-templates/dynamic-http-headers.template.yml)をコピーし、**Amazon S3 URL **フィールドに貼り付けます。

1. [**次へ**] を選択します。

1. パラメータの詳細に情報を入力します。詳細については、「」を参照してください[テンプレートパラメータ](#as2-header-template-parameter-details)。

1. [**次へ**] を選択します。[**スタックオプションの設定**] ページで、[**次へ**] を選択します。

1. 作成しようとするスタックの詳細を確認してから [**スタックの作成**] を選択します。
**注記**  
ページの下部の****「機能」で、 が AWS Identity and Access Management (IAM) リソースを作成する CloudFormation 可能性があることを確認する必要があります。

この CloudFormation スタックをデプロイした後：

1. スタック出力で提供されている Amazon API Gateway エンドポイント URL を書き留めます。

1. 既存の AWS Transfer Family Connector を更新して、この新しい Amazon API Gateway エンドポイントを使用します。

1. このソリューションでは、AS2 メッセージを処理し、設定に従ってヘッダーを追加または変更します。

**警告**  
サブジェクトヘッダーを変更するか、パートナーが明示的に期待するヘッダーのみを追加します。他のヘッダーを変更すると、転送が失敗する可能性があります。