AWS Fargate에서 Ruby를 실행하여 iOS 앱의 인증서 또는 만료일을 Slack에 알립니다.
수정 이어서 요 전날 AWS Fargate가 스케줄 실행을 지원되었기 때문에, 그 곳으로 마이그레이션하기로 했습니다.
TL;TR
앱 넣었다 Docker 이미지 공개했으므로, 그것을 사용해 Fargate로 실행하면 통지해 줍니다.
Lambda 버전의 변경 사항
노드를 삭제하고 루비에만
Lambda판에서는 Node측에서 AppleDeveloperPortal의 ID/Pass와 Slack의 WEBHOOKURL을 KMS로 복호하고 있었습니다. Docker 컨테이너에 루비와 노드 런타임을 모두 넣으면 낭비가 커지므로 루비 쪽으로 옮겼습니다.
ruby, fastlane 최신
TravelingRuby나 Lambda의 사이즈 제약이 없어졌으므로, 마음껏 최신판을 사용할 수 있습니다.
CloudFormation
이번 앱이 들어간 Docker 이미지는 dockerhub에서 공개하고 있으므로 Fargate 측에서 지정하고 실행하는 것만으로 움직일 수 있습니다. 움직이기 위한 IAM Role, ECS의 태스크 정의, ECS의 클러스터까지를 작성하는 yml를 썼습니다.
CloudFormation에는 스케줄 실행 리소스도 있지만, 실행하는 VPC 정보가 필요하고 불특정 다수용으로 정상 동작하도록 쓰는 것은 귀찮았기 때문에 생략했습니다.
대신 작성시의 스쿠쇼를 두어 둡니다.
스케줄 실행 정의
이름은 적당히 합시다. cron(0 1 1 * ? *)
에서 매월 1일 10시 JST에 실행됩니다.
시작 유형은 FARGATE, 작성한 태스크 정의를 지정합니다.
컨테이너 덮어쓰기 위치에서 환경 변수를 변경합니다. ID
, PASS
, WEBHOOKURL
에는 KMS로 암호화한 것을 넣습니다.
이제 매월 하루에 만료일이 Slack에 통보됩니다!
그런데
앱 측의 코드 바꾸지 않았지만 Fargate에서 제대로 움직이고 있습니다. 왜 Lambda판은 실패했던 것일까요. . 어쩌면 Apple 측의 변경으로 낡은 fastlane이라고 잘 취득할 수 없었던···라든지일까요.
Repo
Source: htps : // 기주 b. 코 m / 밥 ds - b / 이오 s-se rp 로후 ぇ ぇ ㅇ x 피라 치 온 - 치 ぇ c 케 r
DockerImage : htps : // 후 b. 도 c r. 코 m / r / rp ぅ sp ぅ s / 이오 s 세 r p 로후 ぇ ぇ ㅇ x 피라 치 온 - 치 ぇ c 케 r /
Reference
이 문제에 관하여(AWS Fargate에서 Ruby를 실행하여 iOS 앱의 인증서 또는 만료일을 Slack에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r_plus/items/0c42157c45320a9543e4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
노드를 삭제하고 루비에만
Lambda판에서는 Node측에서 AppleDeveloperPortal의 ID/Pass와 Slack의 WEBHOOKURL을 KMS로 복호하고 있었습니다. Docker 컨테이너에 루비와 노드 런타임을 모두 넣으면 낭비가 커지므로 루비 쪽으로 옮겼습니다.
ruby, fastlane 최신
TravelingRuby나 Lambda의 사이즈 제약이 없어졌으므로, 마음껏 최신판을 사용할 수 있습니다.
CloudFormation
이번 앱이 들어간 Docker 이미지는 dockerhub에서 공개하고 있으므로 Fargate 측에서 지정하고 실행하는 것만으로 움직일 수 있습니다. 움직이기 위한 IAM Role, ECS의 태스크 정의, ECS의 클러스터까지를 작성하는 yml를 썼습니다.
CloudFormation에는 스케줄 실행 리소스도 있지만, 실행하는 VPC 정보가 필요하고 불특정 다수용으로 정상 동작하도록 쓰는 것은 귀찮았기 때문에 생략했습니다.
대신 작성시의 스쿠쇼를 두어 둡니다.
스케줄 실행 정의
이름은 적당히 합시다.
cron(0 1 1 * ? *)
에서 매월 1일 10시 JST에 실행됩니다.시작 유형은 FARGATE, 작성한 태스크 정의를 지정합니다.
컨테이너 덮어쓰기 위치에서 환경 변수를 변경합니다.
ID
, PASS
, WEBHOOKURL
에는 KMS로 암호화한 것을 넣습니다.이제 매월 하루에 만료일이 Slack에 통보됩니다!
그런데
앱 측의 코드 바꾸지 않았지만 Fargate에서 제대로 움직이고 있습니다. 왜 Lambda판은 실패했던 것일까요. . 어쩌면 Apple 측의 변경으로 낡은 fastlane이라고 잘 취득할 수 없었던···라든지일까요.
Repo
Source: htps : // 기주 b. 코 m / 밥 ds - b / 이오 s-se rp 로후 ぇ ぇ ㅇ x 피라 치 온 - 치 ぇ c 케 r
DockerImage : htps : // 후 b. 도 c r. 코 m / r / rp ぅ sp ぅ s / 이오 s 세 r p 로후 ぇ ぇ ㅇ x 피라 치 온 - 치 ぇ c 케 r /
Reference
이 문제에 관하여(AWS Fargate에서 Ruby를 실행하여 iOS 앱의 인증서 또는 만료일을 Slack에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/r_plus/items/0c42157c45320a9543e4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)