AWS CDK 自定义资源创建

AWS CDK Custom Resource Creation

我有一个 AWS YAML 格式的自定义资源,我想为其创建 AWS CDK 代码。我可以使用 AWS CDK CfnCustomResource 添加条件和 ServiceToken,但我无法添加属性。

YAML 模板

MyAmi:
Condition: UseGI
Properties:
  ServiceToken:
    Fn::ImportValue: !Join ['', [!If [ MyProd, '', 'qa-'], Prod-LookupAmiFunction]]
  AMI: {Ref: AMI}      
  appId: {Ref: AppId}
  envType: {Ref: EnvType}
  osType: {Ref: OSType}
Type: Custom::MyAmi

正在运行的相应 AWS CDK 打字稿代码。

const MyAmi= new cfn.CfnCustomResource(this, 'MyAmi', {
  serviceToken : "DSDS"  # Just a random value but it is working



});MyAmi.cfnOptions.condition = UsemE

我想添加 YAML 模板的属性,我该怎么做。

我明白了。实际上,我应该使用 cdk.cfnResource 而不是 cfn.CfnCustomResource (这最有可能与 lambda 函数或 SNS 主题一起使用)。 cdk.cfnResource 将允许我定义任何自定义属性。

const MyAmi= new cdk.CfnResource(this, 'MyAmi', {
 type : "Custom::MyAmi",
 properties : {

  ServiceToken : cdk.Fn.importValue(cdk.Fn.join('',[cdk.Fn.conditionIf('MyProd','','qa-').toString(),'Prod-LookupAmiFunction'])),
  bizUnit: BizUnit,
  AMI: AMI,      
  appId: AppId,
  envType: EnvType

 });LookupAmi.cfnOptions.condition = UsemE