翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation には、Resources
、files
、packages
などの設定ファイルキーがあります。Elastic Beanstalk では、環境をサポートする AWS CloudFormation テンプレートに設定ファイルの内容を追加しているため、他の AWS CloudFormation セクションを使用して、設定ファイルで高度なタスクを実行することができます。
パラメータ
パラメータは、Elastic Beanstalk 独自の代替的なカスタムオプションであり、これを使用して、設定ファイルの他の場所で使用する値を定義することができます。カスタムオプションと同様、パラメータを使用して、1 つの場所でユーザーが設定可能な値を収集することができます。カスタムオプションとは異なり、Elastic Beanstalk の API を使用してパラメータ値を使用することはできません。テンプレートで定義できるパラメータ数は AWS CloudFormation によって制限されています。
設定ファイルを AWS CloudFormation テンプレートの代わりに使用できることも、パラメータを使用する理由の 1 つです。カスタムオプションの代わりにパラメータを使用する場合は、設定ファイルを使用して、独自のスタックと同じリソースを AWS CloudFormation に作成することができます。たとえば、テスト用環境に Amazon EFS ファイルシステムを追加する設定ファイルがある場合は、同一ファイルを使用して、本稼働用の環境ライフサイクルに固定されていない独自のファイルシステムを作成します。
以下の例では、設定ファイルの上部にあるユーザーが設定可能な値を収集するパラメータを示します。
例 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: ""
出力
Outputs
ブロックを使用して、作成されたリソースに関する情報を AWS CloudFormation にエクスポートすることができます。その後、Fn::ImportValue
関数を使用して、その値を Elastic Beanstalk 外の AWS CloudFormation テンプレートにプルすることができます。
次の例では、Amazon SNS トピックを作成し、ARN を NotificationTopicArn
という名前で AWS CloudFormation にエクスポートします。
例 sns-topic.config
Resources:
NotificationTopic:
Type: AWS::SNS::Topic
Outputs:
NotificationTopicArn:
Description: Notification topic ARN
Value: { "Ref" : "NotificationTopic" }
Export:
Name: NotificationTopicArn
さまざまな環境用の設定ファイル、または Elastic Beanstalk 外の AWS CloudFormation テンプレートで、Fn::ImportValue
関数を使用して、エクスポートされた ARN を取得できます。この例では、エクスポートされた値を TOPIC_ARN
という名前の環境プロパティに割り当てます。
例 env.config
option_settings:
aws:elasticbeanstalk:application:environment:
TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'
Mappings
マッピングを使用して、名前空間ごとに分けられたキーと値のペアを保存することができます。マッピングでは、Config を通して値を整理したり、その他の値に応じてパラメータ値を変更することができます。たとえば、次の設定値では、現在のリージョンに基づいて、アカウント ID のパラメータが設定されます。
例 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