You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在serverless.yaml中为部署时创建的ECR添加resourcePolicy?

如何在serverless.yaml中为部署时自动创建的ECR添加资源策略?

你可以直接在Serverless Framework的配置中,给自动创建的ECR镜像仓库指定repositoryPolicy字段,把需要的资源策略嵌入进去,这样执行sls deploy时,策略会自动应用到对应的ECR仓库上。

修改后的完整serverless.yaml配置如下:

service: lambda-hello
frameworkVersion: '3'

provider:
  name: aws
  region: us-east-1
  ecr:
    images:
      appimage:
        path: .
        repositoryPolicy: |
          {
            "Version": "2008-10-17",
            "Statement": [
              {
                "Sid": "LambdaECRImageRetrievalPolicy",
                "Effect": "Allow",
                "Principal": {
                  "Service": "lambda.amazonaws.com"
                },
                "Action": [
                  "ecr:BatchGetImage",
                  "ecr:DeleteRepositoryPolicy",
                  "ecr:GetDownloadUrlForLayer",
                  "ecr:GetRepositoryPolicy",
                  "ecr:SetRepositoryPolicy"
                ],
                "Condition": {
                  "StringLike": {
                    "aws:sourceArn": "arn:aws:lambda:${aws:region}:${aws:accountId}:function:base-${self:provider.stage}*"
                  }
                }
              }
            ]
          }
functions:
  hello:
    image:
      name: appimage

关键说明:

  • 在provider.ecr.images.appimage节点下新增repositoryPolicy字段,用多行字符串(|符号)包裹你的JSON格式策略。
  • 策略中的变量${aws:region}、${aws:accountId}、${self:provider.stage}会被Serverless Framework自动替换为当前部署的实际值,无需手动修改。
  • 执行sls deploy时,框架会自动将该策略附加到为appimage创建的ECR仓库上,让符合条件的Lambda服务正常访问仓库,绕开环境中的显式拒绝规则。

你的函数代码(app.js)无需修改,保持原样即可。

内容的提问来源于stack exchange,提问作者Jeff Ancel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 11:37:35