簡體   English   中英

AWS CDK:如何從 ECR 存儲庫上的現有 Docker 映像創建 Lambda function?

[英]AWS CDK: How to create a Lambda function from an existing Docker image on ECR repo?

我已經在 ECR 上推送了一個 Docker 圖像。 我還使用它通過 AWS 控制台從容器映像創建 lambda function,並且成功運行。

現在,我想通過 AWS CDK 創建 function。

在 lambda 堆棧 class 的__init__ function 內部,我添加了:

repo = aws_ecr.Repository.from_repository_name(scope, "Repository", repository_name="my-repo-name")
lambdaFn = aws_lambda.DockerImageFunction(
    self, "Test Function",
    code=aws_lambda.DockerImageCode.from_ecr(repo),
    timeout=core.Duration.seconds(600),
    memory_size=8192,
    environment=dict(PATH="/opt"),
    role = role
)

我在從 ECR 上的現有 repo 定義repo變量時遇到問題。

解決了!

代碼顯示錯誤: jsii.errors.JSIIError: Import at 'Repository' should be created in the scope of a Stack, but no Stack found

Repository object 的第一個屬性應該是self以引用堆棧的相同 scope。

靈魂:

repo = aws_ecr.Repository.from_repository_name(self, "Repository", repository_name="my-repo-name")
lambdaFn = aws_lambda.DockerImageFunction(
    self, "Test Function",
    code=aws_lambda.DockerImageCode.from_ecr(
        repository=repo,
        tag="latest"
    ),
    timeout=core.Duration.seconds(600),
    memory_size=8192,
    environment=dict(PATH="/opt"),
    role = role
)

或者,我還根據 Miguel 的回答明確指定了參數tag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM