amazon-web-services - 在 CDK 中配置 lambda 并发

标签 amazon-web-services aws-lambda serverless aws-cdk

我正在尝试通过 CDK 提供 lambda 并发性。我有几个 CfnFunction,我需要配置它们。

只能对别名进行配置。因此,当我将 autoPublishAlias 添加到 CfnFunction 时,APIG 触发器不起作用。

如何通过 CDK 实现(配置)配置?

谢谢,
维诺德。

最佳答案

我想我明白了:

Java 代码

package YOURPACKAGENAMEHERE;

import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.Stack;
import java.util.UUID;
import software.amazon.awscdk.core.Duration;
import software.amazon.awscdk.services.lambda.Alias;
import software.amazon.awscdk.services.lambda.AliasProps;
import software.amazon.awscdk.services.lambda.Code;
import software.amazon.awscdk.services.lambda.Function;
import software.amazon.awscdk.services.lambda.IFunction;
import software.amazon.awscdk.services.lambda.Runtime;
import software.amazon.awscdk.services.lambda.SingletonFunction;
import software.amazon.awscdk.services.lambda.Version;
import software.amazon.awscdk.services.lambda.VersionProps;
import software.amazon.awscdk.services.iam.Role;

public class JavacdexampleStack extends Stack {

    public JavacdexampleStack(final Construct scope, final String id) {
        super(scope, id);

        //create Lambda function
        SingletonFunction lambdaFunction =
        SingletonFunction.Builder.create(this, "cdk-lambda-example")
            .description("Lambda which prints \"I'm running\"")
            .code(Code.fromInline("def main(event, context):\n" + "    print(\"I'm running!\")\n"))
            .handler("index.main")
            .timeout(Duration.seconds(300))
            .runtime(Runtime.PYTHON_3_7)
            .uuid(UUID.randomUUID().toString())
            .role(Role.fromRoleArn(this, "roleId", "arn:aws:iam::111122223333:role/116CD745-C8DA-4569-8058-828EFA93E6D7"))//replace with your execution role or create one in cdk
            .build();

        IFunction lambda = Function.fromFunctionArn(this, "functionId", lambdaFunction.getFunctionArn());

        //create version for alias to be assigned to
        VersionProps versionprop = new VersionProps.Builder()
            .lambda(lambda)
        //assign version which the alias points to with provisioned concurrency
            .provisionedConcurrentExecutions(5)
            .build();

        Version version = new Version(this, "versionId", versionprop);

        //create alias
        AliasProps aliasprops = new AliasProps.Builder()
            .aliasName("YourAliasNameHere")
            .version(version)
            .build();
        Alias alias = new Alias(this,"aliasId", aliasprops);

    }
}

输出 :

provisionedConcurrencyImage

采取的初步步骤

# assumes npm and mvn are installed
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
npm install -g aws-cdk
cdk --version
    # pasting here for visability on which version I used
    1.22.0 (build 309ac1b)

mkdir javacdkexample
cd javacdkexample 
cdk init --language java

# recommended to run after creating the project from docs
# https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_update
mvn versions:use-latest-versions


pom.xml
<dependencies>
    <!-- AWS Cloud Development Kit -->
    <dependency>
        <groupId>software.amazon.awscdk</groupId>
        <artifactId>core</artifactId>
        <version>1.22.0</version>
    </dependency>

    <dependency>
        <groupId>software.amazon.awscdk</groupId>
        <artifactId>lambda</artifactId>
        <version>1.22.0</version>
    </dependency>

    <dependency>
        <groupId>software.amazon.awscdk</groupId>
        <artifactId>events-targets</artifactId>
        <version>1.22.0</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
    </dependency>
</dependencies>

关于amazon-web-services - 在 CDK 中配置 lambda 并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914633/

相关文章:

node.js - 模块初始化错误 : Error at Object. fs.openSync (fs.js :646:18) at Object. fs.readFileSync (fs.js:551:33)

user-interface - 如何在 Amazon AWS 中将 ubuntu 服务器升级到桌面?

mysql - 具有同时查询的 MySQL RDS 的性能挑战

amazon-web-services - AWS Lambda 函数正在无限地从运动流中读取记录

google-app-engine - 何时选择 App Engine 而不是 Cloud Functions?

amazon-rds - Cloudformation 获取 RDS 端点到 Route 53 CName 记录

amazon-web-services - AWS lambda 添加 PATH 变量?

amazon-web-services - 有关 DynamoDB 中主键和排序键的问题

amazon-web-services - 使用 http 端点访问 lambda 中的 HTTP 请求( header 、查询字符串、cookie、正文)对象

java - AWS Lambda 和 SQS : failure reporting