选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

将 Amazon ECS 短服务 ARN 迁移到长 ARN

聚焦模式
将 Amazon ECS 短服务 ARN 迁移到长 ARN - Amazon Elastic Container Service

Amazon ECS 为每个服务分配一个唯一的 Amazon 资源名称(ARN)。2021 年之前创建的服务采用短 ARN 格式:

arn:aws:ecs:region:aws_account_id:service/service-name

Amazon ECS 已将 ARN 格式更改为包含集群名称。这是一种长 ARN 格式:

arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

您的服务必须使用长 ARN 格式才能标记服务。

您可以将短 ARN 格式的服务迁移到长 ARN 格式,而无需重新创建服务。您可以使用 API、CLI 或控制台。您不能撤消迁移操作。

如果要使用 AWS CloudFormation 标记简短 ARN 格式的服务,则必须使用 API、CLI 或控制台迁移该服务。迁移完成后,您可以使用 AWS CloudFormation 标记服务。

如果要使用 Terraform 标记简短 ARN 格式的服务,则必须使用 API、CLI 或控制台迁移该服务。迁移完成后,您可以使用 Terraform 标记服务。

完成迁移后,服务将具有以下更改:

  • 长 ARN 格式

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  • 当您使用控制台进行迁移时,Amazon ECS 会向服务添加一个标签,其键设置为“ecs:serviceArnMigratedAt”,值设置为迁移时间戳(UTC 格式)。

    此标签计入您的标签配额。

  • 当 AWS CloudFormation 堆栈中的 PhysicalResourceId 表示服务 ARN 时,该值不会更改,并且将继续作为短服务 ARN。

先决条件

在迁移服务 ARN 之前执行以下操作。

  1. 要查看您的服务 ARN 是否较短,请在 Amazon ECS 控制台中查看服务详细信息(当服务采用短 ARN 格式时,您会看到警告),或者查看来自 describe-servicesserviceARN 返回参数。当 ARN 不包含集群名称时,您就有一个短 ARN。短 ARN 的格式如下所示:

    arn:aws:ecs:region:aws_account_id:service/service-name

  2. 记下已创建日期。

  3. 如果您的 IAM 策略使用的是短 ARN 格式,则请将其更新为长 ARN 格式。

    将每个用户输入占位符替换为您自己的信息。

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

    有关更多信息,请参阅 AWS Identity and Access Management User Guide 中的 Editing IAM policies

  4. 如果您的工具使用的是短 ARN 格式,则请将其更新为长 ARN 格式。

    将每个用户输入占位符替换为您自己的信息。

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  5. 启用服务长 ARN 格式。在 serviceLongArnFormat 选项设置为 enabled 的情况下运行 put-account-setting。有关更多信息,请参阅《Amazon Elastic Container Service API 参考》中的 put-account-setting

    当您的服务有未知 createdAt 日期时,以根用户身份运行该命令。

    aws ecs put-account-setting --name serviceLongArnFormat --value enabled

    示例输出

    { "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
  6. 启用任务长 ARN 格式。在 taskLongArnFormat 选项设置为 enabled 的情况下运行 put-account-setting。有关更多信息,请参阅《Amazon Elastic Container Service API 参考》中的 put-account-setting

    当您的服务有未知 createdAt 日期时,以根用户身份运行该命令。

    aws ecs put-account-setting --name taskLongArnFormat --value enabled

    示例输出

    { "setting": { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }

过程

使用以下内容迁移您的服务 ARN。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

  3. 服务部分中,选择 ARN 列中包含警告的服务。

    此时系统会显示服务详细信息页面。

  4. 选择迁移到长 ARN

    将显示“迁移服务”对话框。

  5. 选择 Migrate

控制台

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

  3. 服务部分中,选择 ARN 列中包含警告的服务。

    此时系统会显示服务详细信息页面。

  4. 选择迁移到长 ARN

    将显示“迁移服务”对话框。

  5. 选择 Migrate

完成先决条件后,您可以标记服务。运行以下命令:

Amazon ECS 考虑在带有短 ARN 的服务的 tag-resource API 请求中传递长 ARN 格式,作为将服务迁移到使用长 ARN 格式的信号。

aws ecs tag-resource \ --resource-arn arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name --tags key=key1,value=value1

以下示例使用键设置为“TestService”、值设置为“WebServers”的标签来标记 MyService:

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService --tags key=TestService1,value=WebServers

完成先决条件后,您可以标记服务。运行以下命令:

Amazon ECS 考虑在带有短 ARN 的服务的 tag-resource API 请求中传递长 ARN 格式,作为将服务迁移到使用长 ARN 格式的信号。

aws ecs tag-resource \ --resource-arn arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name --tags key=key1,value=value1

以下示例使用键设置为“TestService”、值设置为“WebServers”的标签来标记 MyService:

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService --tags key=TestService1,value=WebServers

完成先决条件后,您可以标记服务。创建 aws_ecs_service 资源并设置 tags 引用。有关更多信息,请参阅 Terraform 文档中的 Resource: aws_ecs_service

resource "aws_ecs_service" "MyService" { name = "example" cluster = aws_ecs_cluster.MyService.id tags = { "Name" = "MyService" "Environment" = "Production" "Department" = "QualityAssurance" } }

完成先决条件后,您可以标记服务。创建 aws_ecs_service 资源并设置 tags 引用。有关更多信息,请参阅 Terraform 文档中的 Resource: aws_ecs_service

resource "aws_ecs_service" "MyService" { name = "example" cluster = aws_ecs_cluster.MyService.id tags = { "Name" = "MyService" "Environment" = "Production" "Department" = "QualityAssurance" } }

后续步骤

您可以向服务添加标签。有关更多信息,请参阅 向 Amazon ECS 资源添加标签

如果您希望 Amazon ECS 将标签从任务定义或服务传播到任务中,则请使用 propagateTags 参数运行 update-service。有关更多信息,请参阅《AWS Command Line Interface 参考》中的 update-service

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。