У меня есть система, для которой требуется экземпляр EC2, который имеет подключения к таблице DynamoDB и экземпляру Redis. Как настроить их в качестве параметров для моего экземпляра EC2 в CloudFormation с использованием YAML?
Я создал OptionSettings, чтобы установить значения в качестве переменной среды для моего процесса в экземпляре EC2. Я знаю, что мне нужно сделать! Ссылка [что-то здесь], но в документации не было примеров, которые имели бы для меня смысл.
Вот упрощенная версия кода:
---
AWSTemplateFormatVersion: "2010-09-09"
Description: CloudFormation template
Resources:
# Beanstalk application
MyApp:
Type: AWS::ElasticBeanstalk::Application
ConfigurationTemplate:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName: !Ref MyApp
OptionSettings:
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: REDIS_CACHE_PORT
Value: !Ref AttributeCache.Port # Should be 6379
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: REDIS_CACHE_ADDRESS
Value: !Ref MyCache. # Something that AWS creates
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: DYNAMODB_TABLE_ADDRESS
Value: !Ref MyDynamoTable. # Something that AWS creates
SolutionStackName: 64bit Amazon Linux 2018.03 v4.8.1 running Node.js
# Redis cache
MyCache:
Type: AWS::ElastiCache::CacheCluster
Properties:
ClusterName: MyCacheCluster
Engine: redis
EngineVersion: 4.0.10
NumCacheNodes: 1
Port: 6379
# DynamoDB table
MyDynamoTable:
Type: "AWS::DynamoDB::Table"
Properties:
AttributeDefinitions:
- AttributeName: theAttributeName
AttributeType: S
KeySchema:
- AttributeName: theAttributeName
KeyType: HASH
TableName: myDynamoTable
Я не уверен, как получить доступ к тому, что создаст CloudFormation.
Правильно ли! Ref или мне нужен! GetAtt вместо этого?
Вот ссылки на два разных документа функций.
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html
Даже просто указав мне на то, что мне не хватает, поможет.