

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

# その他の CloudFormation テンプレートキー
<a name="ebextensions-otherkeys"></a>

`Resources`、、 CloudFormation などの設定ファイルキーはすでに から導入されています`files``packages`。Elastic Beanstalk は、環境をサポートする CloudFormation テンプレートに設定ファイルの内容を追加するため、他の CloudFormation セクションを使用して設定ファイルで高度なタスクを実行できます。

**Topics**
+ [パラメータ](#ebextensions-otherkeys-parameters)
+ [アウトプット](#ebextensions-otherkeys-outputs)
+ [Mappings](#ebextensions-otherkeys-mappings)

## パラメータ
<a name="ebextensions-otherkeys-parameters"></a>

パラメータは、Elastic Beanstalk 独自の代替的な[カスタムオプション](configuration-options-custom.md)であり、これを使用して、設定ファイルの他の場所で使用する値を定義することができます。カスタムオプションと同様、パラメータを使用して、1 つの場所でユーザーが設定可能な値を収集することができます。カスタムオプションとは異なり、Elastic Beanstalk の API を使用してパラメータ値を設定することはできず、テンプレートで定義できるパラメータの数は によって制限されます CloudFormation。

パラメータを使用する理由の 1 つは、設定ファイルを CloudFormation テンプレートとして 2 倍にすることです。カスタムオプションの代わりにパラメータを使用する場合は、設定ファイルを使用して、独自のスタック CloudFormation と同じリソースを に作成できます。たとえば、テスト用環境に Amazon EFS ファイルシステムを追加する設定ファイルがある場合は、同一ファイルを使用して、本稼働用の環境ライフサイクルに固定されていない独自のファイルシステムを作成します。

以下の例では、設定ファイルの上部にあるユーザーが設定可能な値を収集するパラメータを示します。

**Example [loadbalancer-accesslogs-existingbucket.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-existingbucket.config) - パラメータ**  

```
Parameters:
  bucket:
    Type: String
    Description: "Name of the Amazon S3 bucket in which to store load balancer logs"
    Default: "amzn-s3-demo-bucket"
  bucketprefix:
    Type: String
    Description: "Optional prefix. Can't start or end with a /, or contain the word AWSLogs"
    Default: ""
```

## アウトプット
<a name="ebextensions-otherkeys-outputs"></a>

`Outputs` ブロックを使用して、作成されたリソースに関する情報を CloudFormationにエクスポートすることができます。その後、 `Fn::ImportValue`関数を使用して、Elastic Beanstalk 外の CloudFormation テンプレートに値をプルできます。

次の例では、Amazon SNS トピックを作成し、その ARN を という名前 CloudFormation で にエクスポートします`NotificationTopicArn`。

**Example [sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

Outputs:
  NotificationTopicArn:
    Description: Notification topic ARN
    Value: { "Ref" : "NotificationTopic" }
    Export:
      Name: NotificationTopicArn
```

別の環境の設定ファイル、または Elastic Beanstalk 外の CloudFormation テンプレートでは、 `Fn::ImportValue`関数を使用してエクスポートされた ARN を取得できます。この例では、エクスポートされた値を `TOPIC_ARN` という名前の環境プロパティに割り当てます。

**Example env.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'
```

## Mappings
<a name="ebextensions-otherkeys-mappings"></a>

マッピングを使用して、名前空間ごとに分けられたキーと値のペアを保存することができます。マッピングでは、Config を通して値を整理したり、その他の値に応じてパラメータ値を変更することができます。たとえば、次の設定値では、現在のリージョンに基づいて、アカウント ID のパラメータが設定されます。

**Example [loadbalancer-accesslogs-newbucket.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-newbucket.config) - マッピング**  

```
Mappings: 
  Region2ELBAccountId: 
    us-east-1: 
      AccountId: "111122223333"
    us-west-2: 
      AccountId: "444455556666"
    us-west-1: 
      AccountId: "123456789012"
    eu-west-1: 
      AccountId: "777788889999"
...
            Principal: 
              AWS: 
                ? "Fn::FindInMap"
                : 
                  - Region2ELBAccountId
                  - 
                    Ref: "AWS::Region"
                  - AccountId
```