作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
随着最近发布的用于 Lambda
函数的 Docker 镜像,我决定使用 CloudFormation
尝试此功能。
因此,下面的 lambda 考虑存储在 Elastic Container Registry
中的 docker 镜像,并具有按照 documentation 中的示例访问该镜像的权限。 .
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: lambda-docker-image
Globals:
Function:
Timeout: 180
Resources:
DockerAsImage:
Type: AWS::Serverless::Function
Properties:
FunctionName: DockerAsImage
ImageUri: ??????????????.dkr.ecr.us-west-2.amazonaws.com/????:latest
PackageType: Image
Policies:
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- ecr:*
- ecr-public:*
- sts:GetServiceBearerToken
Resource: "*"
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello
Method: post
我正在使用 sam
在 us-west-2
中部署模板
sam deploy -t template.yaml --capabilities "CAPABILITY_NAMED_IAM" --region "us-west-2" --stack-name "lambda-docker-example" --s3-bucket "my-bucket" --s3-prefix "sam_templates/lambda-docker-example" --force-upload --no-confirm-changeset
但是,在成功创建 IAM
角色后,Lambda
函数创建失败,并出现以下错误
Lambda does not have permission to access the ECR image. Check the ECR permissions. (Service: AWSLambdaInternal; Status Code: 403; Error Code: AccessDeniedException;
即使该角色有权访问任何 ecs
资源。我尝试过的另一种方法是创建一个单独的角色并通过 Role: !GetAtt Role.Arn
将其分配给 lambda,这种方法也不起作用。
最佳答案
基于评论。
要使用基于图像的 lambda,需要 ECR 权限的是 IAM 用户/角色,而不是函数本身。来自 docs :
Make sure that the permissions for the AWS Identity and Access Management (IAM) user or role that creates the function contain the AWS managed policies GetRepositoryPolicy and SetRepositoryPolicy.
除了上面列出的两个权限外,还需要ecr: InitiateLayerUpload
。
关于amazon-web-services - Lambda 无权访问 ECR 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65137639/
我是一名优秀的程序员,十分优秀!