OpenWhisk рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ, рднрд╛рдЧ 2


рдпрд╣ рд▓реЗрдЦ рдкреНрд░реАрддрд┐ рджреЗрд╕рд╛рдИ рджреНрд╡рд╛рд░рд╛ рдУрдкрдирд╡рд┐рд╕реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдиреЛрдЯреНрд╕ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд╣реИред рдЖрдЬ рд╣рдо GitHub webhook рдкрд░рд┐рдирд┐рдпреЛрдЬрди, рдЖрд╡рдзрд┐рдХ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрд▓реИрдХ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЖрд╡реЗрджрди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред


рдЧрд┐рддреБрдм рд╡реЗрдмрд╣реБрдХ


GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзрдХреНрдХрд╛, рдкреБрд▓ рдЕрдиреБрд░реЛрдз, рдЖрджрд┐) рджреНрд╡рд╛рд░рд╛ OpenWhisk рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред


рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреИрд╕реЗ wskdeploy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GitHub webhook рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрд╣рд▓рд╛ рдХрджрдо


рдПрдХ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:


GitHub рдХреЗ рд╕рд╛рде рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╡реЗрдВрдЯ рд╕реЛрд░реНрд╕ /whisk.system/github/webhook рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


 packages: helloworld: actions: helloworld: location: src/hello.js runtime: nodejs:6 inputs: name: type: string description: name of a person place: type: string description: location of a person outputs: payload: type: string description: a simple greeting message, Hello World! triggers: GitHubWebhookTrigger: feed: /whisk.system/github/webhook rules: helloworldOnWebhook: action: helloworld trigger: GitHubWebhookTrigger 

рджреВрд╕рд░рд╛ рдХрджрдо


рд╣рдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, repository , accessToken рдФрд░ рдЗрд╡реЗрдВрдЯ рд╕реЛрд░реНрд╕ GitHubWebhookTrigger рдХреЗ рд╕рд╢рд░реНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ:


 application: name: SampleHelloWorld namespace: _ packages: helloworld: actions: helloworld: inputs: name: Amy place: Paris triggers: GitHubWebhookTrigger: inputs: username: pritidesai repository: pritidesai/helloworld accessToken: <accessToken> events: push 

рдЪрд░рдг рддреАрди


рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:


 ./wskdeploy -p ~/SampleHelloWorldApp/ ____ ___ _ _ _ _ _ /\ \ / _ \ _ __ ___ _ __ | | | | |__ (_)___| | __ /\ /__\ \ | | | | '_ \ / _ \ '_ \| | | | '_ \| / __| |/ / / \____ \ / | |_| | |_) | __/ | | | |/\| | | | | \__ \ < \ \ / \/ \___/| .__/ \___|_| |_|__/\__|_| |_|_|___/_|\_\ \___\/ |_| Packages: Name: helloworld bindings: * action: helloworld bindings: - name: name value: Amy - name: place value: Paris Triggers: * trigger: GitHubWebhookTrigger bindings: - name: accessToken value: **** - name: events value: push - name: username value: pritidesai - name: repository value: pritidesai/helloworld annotations: - name: feed value: /whisk.system/github/webhook Rules * rule: helloworldOnWebhook - trigger: GitHubWebhookTrigger - action: helloworld Do you really want to deploy this? (y/N): y Deploying package helloworld ... Done! Deploying action helloworld/helloworld ... Done! Deploying trigger feed GitHubWebhookTrigger ... Done! Deploying rule helloworldOnWebhook ... Done! Deployment completed successfully. 

рд╣рдордиреЗ рд╣рд░ рдмрд╛рд░ GitHub рд╕реЗ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛, рдЬрдм рд╣рдо GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП webhook рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:



рд╣рдо GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирдП рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рддреИрдирд╛рдд рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░рд▓ рд╕реНрд╡рд╛рдЧрдд рд╕рдВрджреЗрд╢ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗред GSTHub рд╕реЗ POST рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬреЗ рдЧрдП рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкреЗрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ рдбреЗрдЯрд╛ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 function main(params) { console.log("GitHub repository is at ", params.repository.url); return {commits: params.commits}; } 

рдпрд╣рд╛рдВ README.md рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкрд╛рджрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдкреЗрд▓реЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


 "commits" : [ { "author" : { "name" : Priti Desai, "username" : pritidesai }, "timestamp" : 2017-03-20T12:54:41-07:00, "removed" : [ ], "modified" : [ README.md ], "added" : [ ], "message" : Update README.md, "committer" : { "name" : GitHub, "email" : noreply@github.com, "username" : web-flow } } ], 

рдЖрдк рдпрд╣рд╛рдБ GitHub webhook рдСрдкрд░реЗрд╢рди рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


рд╕рдВрдХреЗрдд


OpenWhisk рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЖрдВрддрд░рд┐рдХ рд╕рд┐рдЧреНрдирд▓ (рдХреБрдЫ рдХреНрд░реЛрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд░рд╣) рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП wskdeploy рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдкрд░ рдПрдХ рд╕рд╢рд░реНрдд рдЯреНрд░рд┐рдЧрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


рдкрд╣рд▓рд╛ рдХрджрдо


рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдШрдЯрдирд╛ рд╕реНрд░реЛрдд /whisk.system/alarms/alarm рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдХрдЯ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ:


 packages: helloworld: actions: helloworld: location: src/hello.js runtime: nodejs:6 inputs: name: type: string description: name of a person place: type: string description: location of a person outputs: payload: type: string description: a simple greeting message, Hello World! triggers: Every12Hours: feed: /whisk.system/alarms/alarm rules: hellowroldOnCron: action: helloworld trigger: Every12Hours 

рджреВрд╕рд░рд╛ рдХрджрдо


рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ, Cron рдХреЛ рдЗрдирдкреБрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, Every12Hours рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рдеред рдЖрдк рдХреНрд░реЛрди, рдкрд╛рд░рдВрдкрд░рд┐рдХ рдФрд░ рд╕рдВрд╡рд░реНрдзрд┐рдд рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week>  <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> <Year> 

рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рд╕рд╛рдордЧреНрд░реА редyaml рдлрд╝рд╛рдЗрд▓:


 application: name: SampleHelloWorld namespace: _ packages: helloworld: actions: helloworld: inputs: name: Amy place: Paris triggers: Every12Hours: inputs: cron: "0 */12 * * *" 

рдЬрдм рдЯреНрд░рд┐рдЧрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреЗрд▓реЛрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)


 application: name: SampleHelloWorld namespace: _ packages: helloworld: actions: helloworld: inputs: name: Amy place: Paris triggers: Every12Hours: inputs: cron: "0 */12 * * * *" trigger_payload: "{\"name\":\"Mark\", \"place\":\"Barcelona\"}" 

рдЪрд░рдг рддреАрди


рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:


 ./wskdeploy -p ~/SampleHelloWorldApp/ ____ ___ _ _ _ _ _ /\ \ / _ \ _ __ ___ _ __ | | | | |__ (_)___| | __ /\ /__\ \ | | | | '_ \ / _ \ '_ \| | | | '_ \| / __| |/ / / \____ \ / | |_| | |_) | __/ | | | |/\| | | | | \__ \ < \ \ / \/ \___/| .__/ \___|_| |_|__/\__|_| |_|_|___/_|\_\ \___\/ |_| Packages: Name: helloworld bindings: * action: helloworld bindings: - name: name value: Amy - name: place value: Paris Triggers: * trigger: Every12Hours bindings: - name: cron value: 0 */12 * * * * annotations: - name: feed value: /whisk.system/alarms/alarm Rules * rule: helloworldEvery12Hours - trigger: Every12Hours - action: helloworld Do you really want to deploy this? (y/N): y Deploying package helloworld ... Done! Deploying action helloworld/helloworld ... Done! Deploying trigger feed Every12Hours ... Done! Deploying rule helloworldEvery12Hours ... Done! Deployment completed successfully. 

рдЕрдм рд╕реЗ, рдПрд╕реА рдореЗрдВ рдПрдХ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╣рд░ 12 рдШрдВрдЯреЗ рдЪрд▓рддрд╛ рд╣реИред рд╣рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдХреЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ


рд╕реБрд╕реНрдд рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ


рд╕реНрд▓реИрдХ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд▓реИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдЗрдП wskdeploy рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреИрдХреЗрдЬ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ wskdeploy ред


рдкрд╣рд▓рд╛ рдХрджрдо


рд╕реНрд▓реИрдХ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рд╕реНрдерд╛рди рдорд╛рди рдХреЛ /whisk.system/slack рдкрд░ /whisk.system/slack :


 packages: SlackPackage: dependencies: slack-package-to-post-messages: location: /whisk.system/slack inputs: username: $SLACK_USERNAME url: $SLACK_URL channel: $SLACK_CHANNEL рд╕рдВрджреЗрд╢: packages: SlackPackage: dependencies: slack-package-to-post-messages: location: /whisk.system/slack inputs: username: $SLACK_USERNAME url: $SLACK_URL channel: $SLACK_CHANNEL 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕реБрд╕реНрдд рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдмрд╣реВрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд▓реИрдХ рдЪреИрдирд▓ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡реЗрдмрд╣реВрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЕрдм рд╣рдо рдЗрд╕ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд▓реИрдХ рдЪреИрдирд▓ рдкрд░ рд╣рд░ рдШрдВрдЯреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕реНрд▓реИрдХ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:


 packages: SlackPackage: dependencies: slack-package-to-post-messages: location: /whisk.system/slack inputs: username: $SLACK_USERNAME url: $SLACK_URL channel: $SLACK_CHANNEL actions: post-to-slack: function: actions/post-to-slack.js runtime: nodejs:6 inputs: message: type: string description: message to post on slack slack_package: type: string description: slack package name triggers: everyhour: feed: /whisk.system/alarms/alarm rules: post-to-slack-every-hour: action: post-to-slack trigger: everyhour рд╕рдВрджреЗрд╢: packages: SlackPackage: dependencies: slack-package-to-post-messages: location: /whisk.system/slack inputs: username: $SLACK_USERNAME url: $SLACK_URL channel: $SLACK_CHANNEL actions: post-to-slack: function: actions/post-to-slack.js runtime: nodejs:6 inputs: message: type: string description: message to post on slack slack_package: type: string description: slack package name triggers: everyhour: feed: /whisk.system/alarms/alarm rules: post-to-slack-every-hour: action: post-to-slack trigger: everyhour рдШрдВрдЯреЗ: packages: SlackPackage: dependencies: slack-package-to-post-messages: location: /whisk.system/slack inputs: username: $SLACK_USERNAME url: $SLACK_URL channel: $SLACK_CHANNEL actions: post-to-slack: function: actions/post-to-slack.js runtime: nodejs:6 inputs: message: type: string description: message to post on slack slack_package: type: string description: slack package name triggers: everyhour: feed: /whisk.system/alarms/alarm rules: post-to-slack-every-hour: action: post-to-slack trigger: everyhour 

рдкреЛрд╕реНрдЯ-рдЯреВ-рд╕реНрд▓реИрдХ.рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред


рджреВрд╕рд░рд╛ рдХрджрдо


рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:


 application: name: AppToPostToSlack packages: SlackPackage: actions: post-to-slack: inputs: message: "Hello from WskDeploy!" slack_package: slack-package-to-post-messages triggers: everyhour: inputs: cron: "0 */1 * * *" 

рдЪрд░рдг рддреАрди


рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:


 ./wskdeploy -p ~/AppToPostToSlack/ ____ ___ _ _ _ _ _ /\ \ / _ \ _ __ ___ _ __ | | | | |__ (_)___| | __ /\ /__\ \ | | | | '_ \ / _ \ '_ \| | | | '_ \| / __| |/ / / \____ \ / | |_| | |_) | __/ | | | |/\| | | | | \__ \ < \ \ / \/ \___/| .__/ \___|_| |_|__/\__|_| |_|_|___/_|\_\ \ __\/ |_| Packages: Name: SlackPackage bindings: * dependency: slack-package-to-post-messages location: /whisk.system/slack * action: post-to-slack bindings: - message : "Hello from WskDeploy!" - slack_package : "slack-package-to-post-messages" annotations: Triggers: * trigger: everyhour bindings: - cron : "0 */1 * * *" annotations: - name: feed value: /whisk.system/alarms/alarm Rules * rule: post-to-slack-every-hour - trigger: everyhour - action: SlackPackage/post-to-slack Do you really want to deploy this? (y/N): y Deployment completed successfully. 

рдЗрд╕ рдХрджрдо рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреЛрд╕реНрдЯ-рдЯреВ-рд╕реНрд▓реИрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ 1 рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИред рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдХреНрд░рд┐рдпрдг рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╕реНрд▓реИрдХ рдЪреИрдирд▓ рдкрд░ рдПрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:


 Activation: post-to-slack (9909dd5229e84526bff9902a2cd860df) [ "2017-09-12T23:05:17.17872899Z stdout: Hello from WskDeploy!", "2017-09-12T23:05:17.549177677Z stdout: Posted message to slack" ] 

рдЕрдиреНрдп рдЪрдХреНрд░ рд▓реЗрдЦ


OpenWhisk рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ, рднрд╛рдЧ 1
OpenWhisk рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ, рднрд╛рдЧ 2
OpenWhisk рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ, рднрд╛рдЧ 3
рд╕рд░реНрд╡рд░рд╡рд┐рд╣реАрди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ OpenWhisk, рднрд╛рдЧ 4 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ

Source: https://habr.com/ru/post/hi477628/


All Articles