与 AWS SDK或CreateTags一起使用 CLI - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

与 AWS SDK或CreateTags一起使用 CLI

以下代码示例演示如何使用 CreateTags

C++
SDK对于 C++
注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

//! Add or overwrite only the specified tags for the specified Amazon Elastic Compute Cloud (Amazon EC2) resource or resources. /*! \param resources: The resources for the tags. \param tags: Vector of tags. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::EC2::createTags(const Aws::Vector<Aws::String> &resources, const Aws::Vector<Aws::EC2::Model::Tag> &tags, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::CreateTagsRequest createTagsRequest; createTagsRequest.SetResources(resources); createTagsRequest.SetTags(tags); Aws::EC2::Model::CreateTagsOutcome outcome = ec2Client.CreateTags(createTagsRequest); if (outcome.IsSuccess()) { std::cout << "Successfully created tags for resources" << std::endl; } else { std::cerr << "Failed to create tags for resources, " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • 有关API详细信息,请参阅 “AWS SDK for C++ API参考 CreateTags” 中的。

CLI
AWS CLI

示例 1:为资源添加标签

以下create-tags示例将标签Stack=production添加到指定的图像,或者覆盖标签密钥AMI所在位置的现有标签。Stack

aws ec2 create-tags \ --resources ami-1234567890abcdef0 \ --tags Key=Stack,Value=production

有关更多信息,请参阅《适用于 Linux 实例的 Amazon 弹性计算云用户指南》中的主题标题

示例 2:为多个资源添加标签

以下create-tags示例为AMI和实例添加(或覆盖)两个标签。其中一个标签有一个键(webserver),但没有值(值设置为空字符串)。另一个标签有一个键(stack)和一个值(Production)。

aws ec2 create-tags \ --resources ami-1a2b3c4d i-1234567890abcdef0 \ --tags Key=webserver,Value= Key=stack,Value=Production

有关更多信息,请参阅《适用于 Linux 实例的 Amazon 弹性计算云用户指南》中的主题标题

示例 3:添加包含特殊字符的标签

以下 create-tags 示例为实例添加标签 [Group]=test。方括号([ 和 ])是特殊字符,必须对其进行转义。以下示例还使用适用于每个环境的行延续字符。

如果使用的是 Windows,请用双引号(")将具有特殊字符的元素引起来,然后在每个双引号字符前面添加反斜杠(\),如下所示:

aws ec2 create-tags ^ --resources i-1234567890abcdef0 ^ --tags Key=\"[Group]\",Value=test

如果您使用的是 Windows PowerShell,请在元素中使用双引号 (“) 将带有特殊字符的值括起来,在每个双引号字符前面加一个反斜杠 (\),然后用单引号 (') 将整个键和值结构括起来,如下所示:

aws ec2 create-tags ` --resources i-1234567890abcdef0 ` --tags 'Key=\"[Group]\",Value=test'

如果使用的是 Linux 或 OS X,请使用双引号(")将具有特殊字符的元素引起来,然后使用单引号(')将整个键和值结构引起来,如下所示:

aws ec2 create-tags \ --resources i-1234567890abcdef0 \ --tags 'Key="[Group]",Value=test'

有关更多信息,请参阅《适用于 Linux 实例的 Amazon 弹性计算云用户指南》中的主题标题

PowerShell
用于 PowerShell

示例 1:此示例向指定资源添加单个标签。标签键为 “myTag”,标签值为 “myTagValue”。此示例使用的语法需要 PowerShell 版本 3 或更高版本。

New-EC2Tag -Resource i-12345678 -Tag @{ Key="myTag"; Value="myTagValue" }

示例 2:此示例更新或向指定资源添加指定标签。此示例使用的语法需要 PowerShell 版本 3 或更高版本。

New-EC2Tag -Resource i-12345678 -Tag @( @{ Key="myTag"; Value="newTagValue" }, @{ Key="test"; Value="anotherTagValue" } )

示例 3:在 PowerShell 版本 2 中,必须使用 New-Object 为标签参数创建标签。

$tag = New-Object Amazon.EC2.Model.Tag $tag.Key = "myTag" $tag.Value = "myTagValue" New-EC2Tag -Resource i-12345678 -Tag $tag
  • 有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考CreateTags中的。

Rust
SDK对于 Rust
注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

此示例在创建实例后应用 Name 标签。

pub async fn create_instance<'a>( &self, image_id: &'a str, instance_type: InstanceType, key_pair: &'a KeyPairInfo, security_groups: Vec<&'a SecurityGroup>, ) -> Result<String, EC2Error> { let run_instances = self .client .run_instances() .image_id(image_id) .instance_type(instance_type) .key_name( key_pair .key_name() .ok_or_else(|| EC2Error::new("Missing key name when launching instance"))?, ) .set_security_group_ids(Some( security_groups .iter() .filter_map(|sg| sg.group_id.clone()) .collect(), )) .min_count(1) .max_count(1) .send() .await?; if run_instances.instances().is_empty() { return Err(EC2Error::new("Failed to create instance")); } let instance_id = run_instances.instances()[0].instance_id().unwrap(); let response = self .client .create_tags() .resources(instance_id) .tags( Tag::builder() .key("Name") .value("From SDK Examples") .build(), ) .send() .await; match response { Ok(_) => tracing::info!("Created {instance_id} and applied tags."), Err(err) => { tracing::info!("Error applying tags to {instance_id}: {err:?}"); return Err(err.into()); } } tracing::info!("Instance is created."); Ok(instance_id.to_string()) }
  • 有关API详细信息,请参见CreateTags中的 Rust AWS SDK API 参考