roh*_*hpr 4 python-3.x aws-lambda aws-sam aws-cdk
我使用 CDK 使用以下代码创建 AWS SAM 函数:
#!/usr/bin/env python3
from aws_cdk import core
from aws_cdk.aws_sam import CfnFunction
from aws_cdk.aws_iam import PolicyStatement, ServicePrincipal, PolicyDocument, Policy
import random
principal = ServicePrincipal("arn:aws:iam::111111111111:role/rolename")
app = core.App()
stack = core.Stack(app, "cdk-test")
fn = CfnFunction(
stack,
id=f"CfnFn{str(random.randrange(1000, 1000000))}",
**{
"handler": "handler",
"runtime": "python3.8",
"memory_size": 256,
"timeout": 10,
"code_uri": "code_uri"
}
)
app.synth()
Run Code Online (Sandbox Code Playgroud)
我想从另一个帐户调用 Lambda 函数,并希望通过附加基于资源的策略来执行此操作。
aws_cdk.aws_lambda.Function通过调用该方法可以轻松实现这一点add_permission。
但是,却aws_cdk.aws_sam.CfnFunction没有add_permission办法。是否有另一种方法可以使用 SAM(带有 CDK)来实现此目的?或者我应该放弃 SAM 并直接创建 Lambda。
AWS::Lambda::Permission这可以通过使用来实现aws_cdk.aws_lambda.CfnPermission。
from aws_cdk import aws_lambda
aws_lambda.CfnPermission(
scope,
"CrossAccountInvocationPermission",
action="lambda:InvokeFunction",
function_name="FunctionName",
principal="arn:aws:iam::111111111111:role/rolename",
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2705 次 |
| 最近记录: |