gpt4 book ai didi

amazon-web-services - 如何使用 AWS CDK 标记 EBS 卷?

转载 作者:行者123 更新时间:2023-12-03 20:54:05 25 4
gpt4 key购买 nike

我正在使用 AWS CDK 创建带有 EBS 卷的实例:

BlockDevice durableStorage = BlockDevice.builder()
.deviceName("/dev/sdf")
.volume(BlockDeviceVolume.ebs(
DURABLE_STORAGE_GB,
EbsDeviceOptions.builder()
.deleteOnTermination(true)
.encrypted(true)
.volumeType(EbsDeviceVolumeType.GP2)
.build()))
.build();

Instance instance = new Instance(
this,
"MyInstance",
InstanceProps.builder()
/* other config here */
.blockDevices(List.of(durableStorage))
.build());

如何标记 EBS 卷? Tag 静态方法需要 Construct,我在 BlockDevice 上找不到它,例如我想做这样的事情:

Tag.add(durableStorage, "cdk", "true");

最佳答案

到目前为止,我发现的唯一可行的解​​决方案是使用 EC2 用户数据 来标记附加的 EBS 卷:

import * as ec2 from '@aws-cdk/aws-ec2'

// ...

const userData = ec2.UserData.forLinux()
userData.addCommands(
// Tag volume
'AWS_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)',
`ROOT_DISK_ID=$(aws ec2 describe-volumes --region ${props.region} --filter "Name=attachment.instance-id, Values=\${AWS_INSTANCE_ID}" --query "Volumes[].VolumeId" --out text)`,
`aws ec2 create-tags --region ${props.region} --resources \${ROOT_DISK_ID} --tags Key=${tagKey},Value=${tagValue}`,
)

const ec2Instance = new ec2.Instance(this, 'ec2-instance', {
// ...
userData: userData,
})

关于amazon-web-services - 如何使用 AWS CDK 标记 EBS 卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61520269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com