【发布时间】:2016-09-03 15:17:00
【问题描述】:
我已将 Redis ElastiCache 部分添加到我的 s-resource-cf.json(CloudFormation 模板)中,并选择其主机名作为输出。
"Resources": {
...snip...
"Redis": {
"Type": "AWS::ElastiCache::CacheCluster",
"Properties": {
"AutoMinorVersionUpgrade": "true",
"AZMode": "single-az",
"CacheNodeType": "cache.t2.micro",
"Engine": "redis",
"EngineVersion": "2.8.24",
"NumCacheNodes": "1",
"PreferredAvailabilityZone": "eu-west-1a",
"PreferredMaintenanceWindow": "tue:00:30-tue:01:30",
"CacheSubnetGroupName": {
"Ref": "cachesubnetdefault"
},
"VpcSecurityGroupIds": [
{
"Fn::GetAtt": [
"sgdefault",
"GroupId"
]
}
]
}
}
},
"Outputs": {
"IamRoleArnLambda": {
"Description": "ARN of the lambda IAM role",
"Value": {
"Fn::GetAtt": [
"IamRoleLambda",
"Arn"
]
}
},
"RedisEndpointAddress": {
"Description": "Redis server host",
"Value": {
"Fn::GetAtt": [
"Redis",
"Address"
]
}
}
}
在运行 sls resources deploy 时,我可以让 CloudFormation 输出 Redis 服务器主机,但是如何从 Lambda 函数中访问该输出?
此入门项目模板中没有任何内容引用示例项目附带的 IamRoleArnLambda。根据docs,模板仅可用于项目配置,无法从 Lambda 函数中访问:
模板和变量仅用于配置
模板和变量仅用于项目的配置。此信息在您的 lambda 函数中不可用。要设置 lambda 函数可以使用的变量,请使用环境变量。
那么,在创建 ElastiCache 服务器后,如何将环境变量设置为 ElastiCache 服务器的主机名?
【问题讨论】:
标签: aws-lambda amazon-cloudformation amazon-elasticache serverless-framework