堆栈的一个简单示例可能是:
1) 认知用户池。2) 拉姆达。
有没有办法让我引用它构建时生成的 cognito 用户池 ID,以便它可以在我的 lambda 函数(代码)中使用,或者需要获取并手动输入到我的 repo/config 中
或者我可以在构建之前指定一个认知用户池ID吗?我没有看到任何例子。
谢谢
堆栈的一个简单示例可能是:
1) 认知用户池。2) 拉姆达。
有没有办法让我引用它构建时生成的 cognito 用户池 ID,以便它可以在我的 lambda 函数(代码)中使用,或者需要获取并手动输入到我的 repo/config 中
或者我可以在构建之前指定一个认知用户池ID吗?我没有看到任何例子。
谢谢
是的,有几种方法可以做到这一点。可能最简单和最常用的方法是通过lambda 环境变量。
以下是 CloudFormation 中此类设置的一些伪代码:
我的模板.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。