gpt4 book ai didi

amazon-web-services - 如何将 DynamoDB 表地址以及 Redis 端口和地址传递到 CloudFormation 中的 EC2 实例?

转载 作者:行者123 更新时间:2023-12-03 07:21:17 25 4
gpt4 key购买 nike

我的系统需要一个连接到 DynamoDB 表和 Redis 实例的 EC2 实例。如何使用 YAML 将这些设置为 CloudFormation 中的 EC2 实例的选项?

我已创建 OptionSettings 以将值设置为 EC2 实例上进程的环境变量。我知道我需要做 !Ref [此处的某事],但文档中没有对我有意义的示例。

这是代码的简化版本:

---
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

即使只是指出我缺少的东西也会有帮助。

最佳答案

此类信息在 Return Values 下指定每项服务的文档中的部分。此文档部分还提供了是否必须使用 !Ref!GetAtt 才能检索特定参数的信息。例如CacheCluster docs假设您必须使用 !GetAtt MyCache.RedisEndpoint.Port 来获取 redis 的端口和 Dynamo docs假设您必须使用 !Ref MyDynamoTable 来获取表名称。

      OptionSettings:
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: REDIS_CACHE_PORT
Value: !GetAtt MyCache.RedisEndpoint.Port
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: REDIS_CACHE_ADDRESS
Value: !GetAtt MyCache.RedisEndpoint.Address
- Namespace: "aws:elasticbeanstalk:application:environment"
OptionName: DYNAMODB_TABLE_ADDRESS
Value: !Ref MyDynamoTable # You got this one right, but no dot in the end

关于amazon-web-services - 如何将 DynamoDB 表地址以及 Redis 端口和地址传递到 CloudFormation 中的 EC2 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55858427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com