DependsOnが指定されているリソースは、依存するリソースが更新されると更新されるはずです。私はこれをいくつかのリソースについて見ていますが、カスタムリソースのために働いているようには見えません。DependsOnとCloudformカスタムリソース
私はAPIGatewayで作業しており、カスタムリソースを使用して、ステージに関連するリソースが更新されたときにステージを導入しようとしています。これは、含まれているAWS::ApiGateway::Stage
& AWS::ApiGateway::Deployment
は、アップデートを展開するために必要なときにうまく機能していないようです。
は、私は次のテンプレート(参照しやすいように切り取ら)を持っている:私はwebhookEndPointMethod
は何もwebhookEndPointMethod
に変化していないにもかかわらず、更新されていることが分かりpipelineMgrStateMachine
リソースを更新
<snip>
pipelineMgrStateMachine:
Type: AWS::StepFunctions::StateMachine
Properties:
<snip>
webhookEndPointMethod:
Type: AWS::ApiGateway::Method
DependsOn: pipelineMgrStateMachine
Properties:
RestApiId: !Ref pipelineMgrGW
ResourceId: !Ref webhookEndPointResource
HttpMethod: POST
AuthorizationType: NONE
Integration:
Type: AWS
IntegrationHttpMethod: POST
Uri: !Sub arn:aws:apigateway:${AWS::Region}:states:action/StartExecution
Credentials: !GetAtt pipelineMgrGWRole.Arn
PassthroughBehavior: WHEN_NO_TEMPLATES
RequestTemplates:
application/json: !Sub |
{
"input": "$util.escapeJavaScript($input.json('$'))",
"name": "$context.requestId",
"stateMachineArn": "${pipelineMgrStateMachine}"
}
IntegrationResponses:
- StatusCode: 200
MethodResponses:
- StatusCode: 200
pipelineMgrStageDeployer:
Type: Custom::pipelineMgrStageDeployer
DependsOn: webhookEndPointMethod
Properties:
ServiceToken: !GetAtt apiGwStageDeployer.Arn
StageName: pipelinemgr
RestApiId: !Ref pipelineMgrGW
<snip>
。予想通り。
ただし、pipelineMgrStageDeployer
は更新されません。これはpipelineMgrStateMachine
に直接pipelineMgrStageDeployer
を従属させた場合でもそうです。
カスタムリソースがDependssOnリソースが更新されたときにカスタムリソースが更新されない理由についてのアイデアはありますか?他の考えや洞察が役に立つかもしれませんか?
おかげで、 ジョー
を明確にするためにありがとうと参照が素晴らしい仕事を! DependsOnのドキュメントでこのメモを読んだので、私は混乱していました。 _スタック更新中、更新されたリソースに依存するリソースは自動的に更新されます。 AWS CloudFormationでは、自動的に更新されるリソースは変更されませんが、スタックポリシーがこれらのリソースに関連付けられている場合、アカウントにはそれらのリソースを更新する権限が必要です。_ 明らかに、それは私がそれが意味すると思ったことを意味しました。 – NimbusScale