Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 针对特定标签,使用ECR的最新版本更新ECR_Amazon Web Services_Aws Lambda_Boto3 - Fatal编程技术网

Amazon web services 针对特定标签,使用ECR的最新版本更新ECR

Amazon web services 针对特定标签,使用ECR的最新版本更新ECR,amazon-web-services,aws-lambda,boto3,Amazon Web Services,Aws Lambda,Boto3,我有一个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'] F

我有一个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=to sdasd.dkr.ecr.us-east-1.amazonaws.com/cdtest:最新版本正常工作

如果DOCKER_IMAGE=to sdasd.dkr.ecr.us-east-1.amazonaws.com/cdtest:myTag,则会得到最新的(tag)标签

问题是:


如何让它使用cdtest:myTag而不是/cdtest:latest更新集群?即使DOCKER_IMAGE=。。。。cdtest:myTag它总是使用cdtest:最新的图像更新集群
导入boto3
导入操作系统
##设置变量和导入库。
region=“us-east-1”
client=bot3.client('ecs',region\u name=region)
容器名称=os.environ['NAME']
DOCKER_IMAGE=os.environ['IMAGE']
FAMILY_DEF=os.environ['TASK_DEF']
CLUSTER_NAME=os.environ['CLUSTER']
服务名称=os.environ['SERVICE']
打印(“图像->”,DOCKER_图像)
def lambda_处理程序(事件、上下文):
打印(“----开始------”)
响应=client.register\u task\u定义(
family=family_DEF,
networkMode='awsvpc',
集装箱定义=[
{
“名称”:容器名称,
“图像”:DOCKER_图像,
“内存”:300,
“端口映射”:[
{
“集装箱港口”:80,
“主机端口”:80,
“协议”:“tcp”
},
],
"必要":对,,
},
],
)
##TaskDef用于更新我们的服务。
响应=client.update\u服务(
集群=集群名称,
服务=服务名称,
desiredCount=1,
taskDefinition=FAMILY_DEF,
forceNewDeployment=True,
##有多少个容器>n*2>
部署配置={
“最大消费率”:200,
“minimumHealthyPercent”:100
}
)

打印(“更新的服务名为{}集群名为{},具有更新的任务定义”。格式化(服务名,集群名))
您的问题是什么?如何让它使用cdtest:myTag而不是/cdtest:latest更新集群?即使DOCKER_IMAGE=。。。。cdtest:my it始终使用cdtest:latest映像更新集群