AWS Elastic Beanstalk
開発者ガイド

その他の AWS CloudFormation テンプレートキー

AWS CloudFormation には、Resourcesfilespackages などの設定ファイルキーがあります。Elastic Beanstalk では、環境をサポートする AWS CloudFormation テンプレートに設定ファイルの内容を追加しているため、他の AWS CloudFormation セクションを使用して、設定ファイルで高度なタスクを実行することができます。

パラメータ

パラメータは、Elastic Beanstalk 独自の代替的なカスタムオプションであり、これを使用して、設定ファイルの他の場所で使用する値を定義することができます。カスタムオプションと同様、パラメータを使用して、1 つの場所でユーザーが設定可能な値を収集することができます。カスタムオプションとは異なり、Elastic Beanstalk's 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: "my-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

このページの内容: