Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services “云信息更新”支持;请参阅另一个堆栈中的资源“;_Amazon Web Services_Amazon Cloudformation_Aws Lambda - Fatal编程技术网

Amazon web services “云信息更新”支持;请参阅另一个堆栈中的资源“;

Amazon web services “云信息更新”支持;请参阅另一个堆栈中的资源“;,amazon-web-services,amazon-cloudformation,aws-lambda,Amazon Web Services,Amazon Cloudformation,Aws Lambda,我使用来自的示例引用另一个堆栈中的资源(我认为这非常有用,应该是一个现成的特性)。但是,该示例似乎不适用于更新,即,如果将新输出添加到引用的堆栈中 有趣的是,lambda函数甚至没有根据日志和度量进行调用,因此它似乎不是一个可以在代码中修复的问题。我确实认为,代码应该在更新时使用不同的PhysicalResourceId 注意:这是一篇来自的交叉文章。事实证明,CloudFormation只会在自定义资源的某个属性发生更改时更新该资源。一旦发生这种情况,定制资源应该发出它已更改的信号。所以 替换

我使用来自的示例引用另一个堆栈中的资源(我认为这非常有用,应该是一个现成的特性)。但是,该示例似乎不适用于更新,即,如果将新输出添加到引用的堆栈中

有趣的是,lambda函数甚至没有根据日志和度量进行调用,因此它似乎不是一个可以在代码中修复的问题。我确实认为,代码应该在更新时使用不同的
PhysicalResourceId


注意:这是一篇来自

的交叉文章。事实证明,CloudFormation只会在自定义资源的某个属性发生更改时更新该资源。一旦发生这种情况,定制资源应该发出它已更改的信号。所以

替换:

response.send(event, context, response.SUCCESS, responseData);

这将导致更新期间发生以下事件:

15:08:16 UTC+0200  UPDATE_COMPLETE     Custom::NetworkInfo  NetworkInfo 
15:08:15 UTC+0200  UPDATE_IN_PROGRESS  Custom::NetworkInfo  NetworkInfo  Requested update required the provider to create a new physical resource
15:08:08 UTC+0200  UPDATE_IN_PROGRESS  Custom::NetworkInfo  NetworkInfo
但这仍然需要更改属性。我想到的最好方法是向自定义资源传递一个伪随机参数:

{
  "Parameters": {
    "Random": {
      "Description": "Random value to force stack-outputs update",
      "Type": "String"
    }
  },
  "Resources": {
    "NetworkInfo": {
      "Type": "Custom::NetworkInfo",
      "Properties": {
        "ServiceToken": { "Fn::GetAtt" : ["LookupStackOutputs", "Arn"] },
        "Random": { "Ref": "Random" },
        "StackName": { "Ref": "NetworkStackName" }
      }
    }
  }
}
未知参数(即
随机
)被lambda函数忽略

{
  "Parameters": {
    "Random": {
      "Description": "Random value to force stack-outputs update",
      "Type": "String"
    }
  },
  "Resources": {
    "NetworkInfo": {
      "Type": "Custom::NetworkInfo",
      "Properties": {
        "ServiceToken": { "Fn::GetAtt" : ["LookupStackOutputs", "Arn"] },
        "Random": { "Ref": "Random" },
        "StackName": { "Ref": "NetworkStackName" }
      }
    }
  }
}