Guest User

Untitled

a guest
Jul 5th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ## Override
  4. JENKINS_HOST=""
  5. JENKINS_USERNAME=""
  6. JENKINS_PASSWORD=""
  7. JENKINS_JOB=""
  8. CRON_EXPRESSION="cron(0 8 * * ? *)"
  9. ## Global variables
  10. AWS_REGION="us-east-1"
  11. FUNCTION_NAME="RestartJob"
  12.  
  13. echo "Building binary"
  14. GOOS=linux go build -o main main.go
  15.  
  16. echo "Generating deployment package"
  17. zip deployment.zip main
  18.  
  19. echo "Creating IAM Role"
  20. POLICY_ARN=$(aws iam create-policy --policy-name $FUNCTION_NAME --policy-document file://policy.json | jq -r '.Policy.Arn')
  21. ROLE_ARN=$(aws iam create-role --role-name $FUNCTION_NAME --assume-role-policy-document file://role.json | jq -r '.Role.Arn')
  22. aws iam attach-role-policy --role-name $FUNCTION_NAME --policy-arn $POLICY_ARN
  23.  
  24. echo "Creating Lambda function"
  25. FUNCTION_ARN=$(aws lambda create-function --function-name $FUNCTION_NAME --runtime go1.x \
  26. --handler main --role $ROLE_ARN \
  27. --zip-file fileb://./deployment.zip \
  28. --environment Variables="{JENKINS_HOST=$JENKINS_HOST,JENKINS_USERNAME=$JENKINS_USERNAME,JENKINS_PASSWORD=$JENKINS_PASSWORD,JENKINS_JOB=$JENKINS_JOB}" \
  29. --region $AWS_REGION | jq -r '.FunctionArn')
  30.  
  31. echo "Creating CloudWatch Event rule"
  32. RULE_ARN=$(aws events put-rule --name launch-container-daily --schedule-expression ''"$CRON_EXPRESSION"'' | jq -r '.RuleArn')
  33. aws lambda add-permission --function-name $FUNCTION_NAME \
  34. --statement-id 1 \
  35. --action 'lambda:InvokeFunction' \
  36. --principal events.amazonaws.com \
  37. --source-arn $RULE_ARN
  38. sed -i '.bak' 's/FUNCTION_ARN/'"$FUNCTION_ARN"'/g' targets.json
  39. aws events put-targets --rule launch-container-daily --targets file://targets.json
  40.  
  41.  
  42. echo "Cleaning up"
  43. rm main deployment.zip *.bak
Add Comment
Please, Sign In to add comment