我有一个使用SAM构建的AWS lambda。我想将lambda的支持docker映像的id(或者,如果更容易的话,标记(传播到lambda运行时函数。
我该怎么做?
注意:我指的是映像id和NOT容器id——如果您在本地调用docker image ls
,您会看到这些。获取容器id/主机名很容易:D
我试图在template.yaml中声明一个参数,并以这种方式将其作为环境变量。我更喜欢在template.yaml中最多定义一次值,最好是自动填充它,尽管我不知道那里的最佳实践。目的是避免人为失误。除非迫不得已,否则我不想在命令行上传递值。
如果获取图像id太难,那么作为后备,DockerTag
就可以了。再说一次,我不想在template.yaml中的多个位置出现这种情况。谢谢!
未回答的类似问题:从容器中查找容器的图像ID
运行sam package
后,启动的图像URI在打包的模板文件中可用,因此可以从中提取标记。
例如,如果使用YAML:
grep -w ImageUri packaged.yaml | cut -d: -f3
这将在打包的模板(看起来像ImageUri: 12345.dkr.ecr.us-east-1.amazonaws.com/myrepo:mylambda-123abc-latest
(中找到URI,并获取第二个:
之后的标签。
也就是说,我认为这不是一个好的解决方案。我希望有一种方法可以使用SAM CLI。