堆栈的一个简单例子可以是
1) 一个认知用户池 2) lambda。
是否有办法让我参考构建时生成的 cognito 用户池 ID,以便在我的 lambda 函数(代码)中使用,还是需要手动获取并输入到我的 repoconfig 中?
或者我可以在建立cognito用户池之前指定一个cognito用户池id吗? 我没有看到任何例子。
谢谢你
是的,有几种方法可以做到这一点。可能最简单也是最常被推荐的方法是通过使用 lambda环境变量.
以下是CloudFormation中此类设置的一些伪代码。
mytemplate.yaml
MyUserCognitoPool:
Type: AWS::Cognito::UserPool
Properties:
<properties>
MyLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
POOL_ID: !Ref MyUserCognitoPool
Code:
Code:
ZipFile:
import os
pool_id = os.environ['POOL_ID']
def handler_name(event, context):
print(pool_id)
return some_value
CloudFormation有一个返回值的概念,您通常可以使用 !Ref MyResource
或 !GetAtt MyResource.someAttribute
来获取相应的值.AWS CF文档通常会描述返回哪些值。例如参见 AWS::Cognito::UserPool 返回值. 在这种情况下: !Ref MyUserPoolResource
会给你自动生成的用户池ID。