AWS SAM如何在template.yml或samconfig.toml中自定义ECR镜像标签
解决AWS SAM自定义ECR镜像标签的配置方法
配置说明
你当前的image_repositories参数写法有误,该参数仅需填写ECR仓库的基础URI,不需要附带标签,标签需通过单独的参数配置。
方法1:通过samconfig.toml全局配置统一镜像标签
在配置文件中新增build段的image_tag参数即可全局指定所有镜像的标签为latest,修改后的完整配置如下:
version = 0.1 [default] [default.build] [default.build.parameters] image_tag = "latest" [default.deploy] [default.deploy.parameters] stack_name = "dev" s3_bucket = "aws-sam-cli-abc" s3_prefix = "dev" region = "us-east-1" confirm_changeset = true capabilities = "IAM" # 此处仅填ECR仓库URI,不要加:latest后缀 image_repositories = ["InferenceFunction=你的AWS账户ID.dkr.ecr.us-east-1.amazonaws.com/你的ECR仓库名"]
方法2:通过template.yml为单个函数指定镜像标签
如果只需为特定函数自定义标签,可在函数资源的Metadata字段中添加DockerTag配置,示例如下:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: InferenceFunction: Type: AWS::Serverless::Function Properties: PackageType: Image # 其他函数配置省略 Metadata: DockerTag: latest DockerContext: ./inference Dockerfile: Dockerfile
生效操作
配置完成后按正常流程执行构建部署即可:
- 执行构建:
sam build - 执行部署:
sam deploy
部署时会自动使用你指定的latest标签推送镜像到ECR,不会再自动生成随机标签。
内容的提问来源于stack exchange,提问作者ForeverNews
相关产品推荐
相关产品推荐

