Linux-別のコマンドが実行されたときにコマンドを実行する


2

そのため、私は主にCloudformationを中心に、インフラストラクチャの自動化を行うatmを大量に作成しています。また、CFデプロイ(Sceptre)を管理するために使用しているラッパー/フレームワークツールがあります。CFでサポートされていないタスクに出くわしましたが、タスクの完了に必要であり、タスクの途中で手動介入ステップを追加するのにうんざりしています。だから、私が欲しいのは、特定のコマンドが実行されたときにコマンドをトリガーする方法です。例えば:

sceptre create-stack example mystack

そして、誰かがこれを実行したときにトリガーするaws cliコマンドがあります。

aws module command --option=lol

ありがとう。

編集:誰かがそれを行うLinuxネイティブの方法を持っている場合、それを提供してください、私はこのタスクを完了することができた複数の方法を理解したいと思います。


1
これらすべてのコマンドを含むスクリプトを作成します。代わりに実行してください。または、Sceptreの機能を拡張します。Pythonなので、変更するだけです。
HackSlash

@HackSlashあなたの言うことはわかりますが、それは私がやりたくないことをやっています。他のユーザーがさまざまなタスクのコンテキスト切り替えを行うことなくフレームワークを使用できるようにしたい、常にエラーへの最速の方法のように感じる。
ジョンフォンノイマン

回答:


1

だから、実際にそれを行う方法を見つけましたが、それはスーパーユーザーの答えではありませんので、MODが削除、移動、またはこの答え/質問をしたい場合は、お気軽に。

カスタムリソースでAWS Lambda関数を使用する

Lambda関数とカスタムリソースを使用すると、スタックイベント(作成、更新、削除)に応答してカスタムコードを実行できます。次のカスタムリソースはLambda関数を呼び出し、入力としてStackNameプロパティを送信します。関数はこのプロパティを使用して、適切なスタックから出力を取得します。

JSON

"MyCustomResource" : {
  "Type" : "Custom::TestLambdaCrossStackRef",
  "Properties" : {
    "ServiceToken": { "Fn::Join": [ "", [ "arn:aws:lambda:", { "Ref": "AWS::Region" }, ":", { "Ref": "AWS::AccountId" }, ":function:", {"Ref" : "LambdaFunctionName"} ] ] },
    "StackName": {
      "Ref": "NetworkStackName"
    }
  }
}

YAML

MyCustomResource: 
  Type: "Custom::TestLambdaCrossStackRef"
  Properties: 
    ServiceToken:
      !Sub |
        arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${LambdaFunctionName}
    StackName: 
      Ref: "NetworkStackName"

0

そして、私はそれを行う別の方法を見つけたと言って恥ずかしいです、なぜ私はRTFMだけではなかったのですか?したがって、これは実際にはSceptre固有の方法です。

フックを使用すると、Scepterアクションが発生したときにカスタムコマンドを実行できます。

Scepterが実行されると、特定のフックポイントでフックが実行されます。

必要に応じて、カスタムフックのセクションで説明されているように、ユーザーは独自のフックを作成できます。フックポイント

before_createまたはafter_create-スタック作成の前後にフックを実行します。

before_updateまたはafter_update-スタック更新の前後にフックを実行します。

before_deleteまたはafter_delete-スタック削除の前後にフックを実行します。

構文:

フックは、次の構文を使用して、スタックの構成ファイルで指定されます。

hooks:
    hook_point:
        - !command_type command 1
        - !command_type command 2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.