【发布时间】:2020-11-07 15:54:07
【问题描述】:
我开始使用 Pulumi 为我的项目进行 IaC 设计,但我很难理解如何将现有代码绑定到 Pulumi 的使用。
例如,假设我在 python 中做了一个 lambda 函数,内容如下:
# test_lambda.py
import boto3
import json
sqs_client = boto3.client('sqs')
ssm_client = boto3.client('ssm')
def get_auth_token():
response = ssm_client.get_parameters(
Names=[
'lambda_auth_token',
],
WithDecryption=False
)
return response["Parameters"][0]["Value"]
def handler(event, _):
body = json.loads(event['body'])
if body['auth_token'] == get_auth_token():
sqs_client.send_message(
QueueUrl='my-queue',
MessageBody='validated auth code',
MessageDeduplicationId='akjseh3278y7iuad'
)
return {'statusCode': 200}
else:
return {'statusCode': 403}
如何在 Pulumi 项目中引用包含 lambda 函数的整个文件?所以我可以使用这个与 SNS 服务集成的 lambda。
而且,由于我在我的架构中使用 Pulumi,boto3 似乎不需要,我可以用 Pulumi aws 库替换它,对吗?然后 python 解释器将只使用 Pulumi 作为我的 aws 资源(如 boto3)的通用接口库?
最后一个问题可能看起来很奇怪,但目前我只看到在运行 pulumi up 时使用 pulumi 作为堆栈和架构“构建器”。
【问题讨论】: