当前位置: 首页 > 知识库问答 >
问题:

使用特定标签的 ECR 最新版本更新 ECR

郗福
2023-03-14

我有一个Lambda功能来升级我的ECS。它总是适用于最新的标签

import boto3
import os

## Setting variables and importing libraries.
region = "us-east-1"
client = boto3.client('ecs', region_name=region)

CONTAINER_NAME = os.environ['NAME']
DOCKER_IMAGE = os.environ['IMAGE']
FAMILY_DEF = os.environ['TASK_DEF']
CLUSTER_NAME = os.environ['CLUSTER']
SERVICE_NAME = os.environ['SERVICE']

print ("IMAGE -> ", DOCKER_IMAGE)

def lambda_handler(event, context):
    print("----- START -----")

    response = client.register_task_definition(
        family=FAMILY_DEF,
        networkMode='awsvpc',
        containerDefinitions=[
            {
                'name': CONTAINER_NAME,
                'image': DOCKER_IMAGE,
                'memory': 300,
                'portMappings': [
                    {
                        'containerPort': 80,
                        'hostPort': 80,
                        'protocol': 'tcp'
                    },
                ],
                'essential': True,
            },
        ],
    )

    ## TaskDef for updating our service.
    response = client.update_service(
        cluster=CLUSTER_NAME,
        service=SERVICE_NAME,
        desiredCount=1,
        forceNewDeployment=True,
    ##   how many containers > n * 2 >
        deploymentConfiguration={
            'maximumPercent': 200,
            'minimumHealthyPercent': 100
        }
    )
    print("Updated service named {} cluster named {} with an updated task definition".format(SERVICE_NAME, CLUSTER_NAME))

如果DOCKER_IMAGE=至sdasdasd.dkr.ecr.us-east-1.amazonaws。com/cdtest:最新的它工作正常。

如果 DOCKER_IMAGE = sdasdasdasd.dkr.ecr.us-east-1.amazonaws.com/cdtest:myTag 它会给我最新的(标签)一个。

问题是:

如何让它用cdtest:myTag而不是/cdtest:latest更新集群?即使当DOCKER_IMAGE =....它总是用cdtest:latest image更新集群

共有1个答案

董俊
2023-03-14
import boto3
import os

## Setting variables and importing libraries.
region = "us-east-1"
client = boto3.client('ecs', region_name=region)

CONTAINER_NAME = os.environ['NAME']
DOCKER_IMAGE = os.environ['IMAGE']
FAMILY_DEF = os.environ['TASK_DEF']
CLUSTER_NAME = os.environ['CLUSTER']
SERVICE_NAME = os.environ['SERVICE']

print ("IMAGE -> ", DOCKER_IMAGE)

def lambda_handler(event, context):
    print("----- START -----")

    response = client.register_task_definition(
        family=FAMILY_DEF,
        networkMode='awsvpc',
        containerDefinitions=[
            {
                'name': CONTAINER_NAME,
                'image': DOCKER_IMAGE,
                'memory': 300,
                'portMappings': [
                    {
                        'containerPort': 80,
                        'hostPort': 80,
                        'protocol': 'tcp'
                    },
                ],
                'essential': True,
            },
        ],
    )

    ## TaskDef for updating our service.
    response = client.update_service(
        cluster=CLUSTER_NAME,
        service=SERVICE_NAME,
        desiredCount=1,
        taskDefinition=FAMILY_DEF,
        forceNewDeployment=True,
    ##   how many containers > n * 2 >
        deploymentConfiguration={
            'maximumPercent': 200,
            'minimumHealthyPercent': 100
        }
    )
    print("Updated service named {} cluster named {} with an updated task definition".format(SERVICE_NAME, CLUSTER_NAME))
 类似资料:
  • 问题内容: 我在安装项目时遇到了一些问题。 我拥有运行 Swift 3* 的最新版本的 Xcode ,并且当我尝试安装alamofire时遇到800个编译器错误。 * 显然地 构建Alamofire 4.0.0+需要CocoaPods 1.1.0+ 我看着终端机上的CocoaPods版本,它说我的版本是1.0.1。 我猜运行更新没有用,因为CocoaPods 1.1是beta版。 因此,我不确定如

  • 最近我和Laravel一起工作。我使用作曲家来安装包和工匠的命令。 问题是我的机器使用的是Laravel 5.4而不是5.7。 当我运行phpinfo()时,结果是PHP版本7.2.7。您是否认为问题在于我没有使用最新版本的xampp,其中包含PHP7?

  • 问题内容: 我正在更新我的Kubernetes容器: 以下是我的service.yaml: 以下是我的deployment.yaml: 第一次可以正常运行,但是在随后的运行中,我的广告连播没有得到更新。 我已经在https://github.com/kubernetes/kubernetes/issues/33664上阅读了建议的解决方法,该方法是: 我能够运行上面的命令,但是它没有为我解决问题。

  • 我有一个标签,这是使用了多次在我的网页。它工作得很好,直到我尝试按Ajax更新标签。结果:只有第一个标签得到更新。这是一个已知的问题吗?我不确定,因为我不能打开JIRA页面:https://issues.apache.org/JIRA/browse/wicket(一直在跳)。我使用的是wicket 7.3.0版本 =>只更新第一个标签。我有一个解决办法,通过添加4个不同的标签实例与相同的文本内容。

  • 我想将我的所有软件包更新到最新版本: 谢谢!!

  • 我试图弄清楚如何从Play商店强制更新最新版本。 由于我的android应用程序的旧版本已经在play store中,我还没有执行检查,以获取应用程序的当前版本,并与链接中指定的play store应用程序版本进行比较,请强制更新android应用程序 当我想上传新版本的代码时,他才可以使用新版本。 你能帮帮我吗?

  • 鸿蒙开发app,实现-提示用户打开app之后检查版本如果当前版本小于最新版本提示更新版本-功能。 通过getBundleInfo()获取到的是用户安装的版本还是最新版本呢? 如何获取用户安装的app版本?如何获取应用市场的最新版本? 通过getBundleInfo()获取app.json文件中的version字段

  • v2.0.9[2020-4-12] 修复(Fixed): 修复 MySQL 8.0 生成实体主键位置错误 e437d36 更新(Update): 连接池关闭连接, 如果连接已经断开, 异常将会被忽略 7aac80da 增强(Enhancement): v2.0.8[2020-1-18] 修复(Fixed): 修复 ws server 的 message response.finish 兼容 swo