AWS CDK 将原始文本传递给 UserData

AWS CDK Pass raw text to UserData

我正在尝试使用 AWS CDK V2 将数据传递给第三方 appliance/ami Python

设备希望通过用户数据传入一段配置数据。

在 AWS 控制台中,您可以将用户数据作为文本输入。

如果直接使用原始 CloudFormation,我可以执行以下操作

UserData:
    Fn::Base64: !Ref 'APIKEY'

我不确定如何使用 CDK 执行此操作。当我使用 CDK

执行以下操作时
  instance.add_user_data(api_token)

我明白了

UserData:
    Fn::Base64: |-
      #!/bin/bash
      api-token-material

是否可以复制将 material 作为文本传递?

所以在我看来这不是 well-documented,但答案相当微不足道。使用自定义 UserData 静态 method.https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ec2.UserData.html#static-customcontent

 per_instance_user_data = ec2.UserData.custom(api_token)
 ec2.Instance(...,
           
            user_data=per_instance_user_data,
      
        )

生成的 CF 模板看起来像

      UserData:
       Fn::Base64: api-token-material