我有一个带有Lambda的堆栈,我使用cfnOutput导出了ARN。
然后我尝试从另一个堆栈导入它,以便可以向其添加策略:
const streamFunctionArn = cdk.Fn.importValue("event-store-stream-function")
const streamFunction = Function.fromFunctionArn(scope, 'event-store-stream-function', streamFunctionArn)
props.queue.grantSendMessages(streamFunction)
streamFunction.role?.addToPolicy(new PolicyStatement({
actions: ["sqs:SendMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl"],
effect: Effect.ALLOW,
resources: [props.queue.queueArn]
}))
addToPolicy或grantSendMessages似乎都没有作用,在生成的模板中我也没有看到有关此lambda的任何策略。
我已经通过将额外的输出添加到此堆栈来确保导入了lambda arn。