python - 使用堆栈名称标记 ec2 实例

标签 python amazon-ec2 aws-cloudformation

我想用 key-somekey 和 otherkey- 标记 ec2 实例,并将值作为 stackname。这个 python 代码能解决这个问题吗??

import os, sys, pprint #standard library imports
import yaml, boto3 #pip library imports
import lib.aws as aws
import config.hooks as hooks


def generate(source_data):
    return yaml.dump(generate_map(source_data), default_flow_style=False)

def generate_resource(ami, source_data):
    resource = {
        "Type": "AWS::EC2::Instance",
        "Properties": {
            "ImageId": ami["ImageId"],
            "InstanceType": ami["InstanceType"],
            "PrivateIpAddress": ami["PrivateIpAddress"],
            "KeyName": ami["KeyName"],
            "SubnetId": { "Ref": "SubnetId" },
            "SecurityGroupIds": { "Ref":  "SecurityGroupId" }, 
            "Tags": [
                { "Key": "Name", "Value": ami["Name"] },
                { "Key": "BootUpDependsOn", "Value": ami["BootUpDependsOn"]},
                { "Key": "somekey", "Value": "Fn::Sub": "${AWS::StackName}},
                { "Key": "otherkey", "Value": "Fn::Sub": "${AWS::StackName}},
                { "Key": "WaitTimeAfterBootUp", "Value": ami["WaitTimeAfterBootUp"]}
            ]
        }
    }

最佳答案

云形成automatically tags具有以下标签的资源:

  • aws:cloudformation:逻辑 ID
  • aws:cloudformation:堆栈 ID
  • aws:cloudformation:堆栈名称

因此,您可以使用自动提供的标签,而不是使用 AWS::StackName 复制标签。

更新

缺少引号:

   { "Key": "otherkey", "Value": "Fn::Sub": "${AWS::StackName}},

应该是:

   { "Key": "otherkey", "Value": "Fn::Sub": "${AWS::StackName}"},

也许也应该是:

   { "Key": "otherkey", "Value": {"Fn::Sub": "${AWS::StackName}"}},

关于python - 使用堆栈名称标记 ec2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712747/

相关文章:

python - 如何将多个功能映射到一个ttk按钮

Python Tkinter 文本格式标记

python - 修复密码哈希在导入到 MySQL 表时被截断的问题

python - 你能推荐一个适用于 Python 的 Amazon AMI 吗?

python - 如何在 AWS Elastic Beanstalk 上强制应用程序版本

amazon-web-services - AWS CloudFormation/SAM 模板中的 DataFormatConversion.InvalidSchema 错误

python - 如何强制重新执行 jinja2 模板中的函数?

python - 在Python中将S3数据并行/异步下载到EC2中?

amazon-web-services - 云形成 : Access PrivateDnsNamespace as HostedZone

amazon-web-services - AWS Proton 参数 - 阐明如何在 CF 模板中使用 schema.yaml 参数