{"id":293,"date":"2020-05-24T04:15:03","date_gmt":"2020-05-24T04:15:03","guid":{"rendered":"https:\/\/aki-hamano.blog\/?p=293"},"modified":"2025-10-25T03:54:31","modified_gmt":"2025-10-25T03:54:31","slug":"aws-notification","status":"publish","type":"post","link":"https:\/\/aki-hamano.blog\/ja\/2020\/05\/24\/aws-notification\/","title":{"rendered":"Lambda x Amazon SNS\u3067\u3001AWS\u306e\u8acb\u6c42\u984d\u3092\u6bce\u65e5\u30e1\u30fc\u30eb\u3067\u901a\u77e5\u3059\u308b"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CloudWatch\u3067\u8acb\u6c42\u30a2\u30e9\u30fc\u30c8\u3092\u8a2d\u5b9a\u3059\u308b\u4e8b\u306f\u3067\u304d\u307e\u3059\u304c\u3001\u8d85\u5fc3\u914d\u6027\u306a\u81ea\u5206\u3068\u3057\u3066\u306f\u3001\u6708\u521d\uff5e\u524d\u65e5\u307e\u3067\u306e\u8acb\u6c42\u984d\u3092\u6bce\u65e5\u30e1\u30fc\u30eb\u3067\u78ba\u8a8d\u3057\u3066\u304a\u304d\u305f\u3044\u3002 AWS Lambda\u3068webhook\u3092\u4f7f\u3063\u3066Slack\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u901a\u77e5\u3059\u308b\u65b9\u6cd5\u306f\u591a\u304f\u898b\u3089\u308c\u307e\u3057\u305f\u304c\u3001\u30e1\u30fc\u30eb\u3067\u901a\u77e5\u3059\u308b\u65b9\u6cd5\u306f\u610f\u5916\u3068\u591a\u304f\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6982\u8981<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8acb\u6c42\u984d\u306fCost Explorer\u304b\u3089\u53d6\u5f97\u3059\u308b\u3002 \u203bCloudWatch\u304b\u3089\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3082\u3042\u308a\u307e\u3059\u304c\u3001<a href=\"https:\/\/hacknote.jp\/archives\/44913\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u53cc\u65b9\u306b\u5dee\u7570\u304c\u3042\u308a\u6b63\u3057\u3044\u5024\u306fCost Explorer\u3067\u3042\u308b<\/a>\u3068\u3044\u3046\u60c5\u5831\u304c\u3042\u3063\u305f\u305f\u3081\u3001Cost Explorer\u3092\u4f7f\u3046\u4e8b\u306b\u3057\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li>Lambda\u95a2\u6570\u306e\u30e9\u30f3\u30bf\u30a4\u30e0\u306fPython3.7\u3068\u3057\u3001Python \u5411\u3051\u306eAWS SDK\uff08Boto3\uff09\u3092\u5229\u7528\u3059\u308b\u3002<\/li>\n\n\n\n<li>\u30c8\u30ea\u30ac\u3092\u8a2d\u5b9a\u3057\u305fLambda\u95a2\u6570\u306b\u3066\u3001\u6708\u521d\uff5e\u524d\u65e5\u307e\u3067\u306e\u5408\u8a08\u8acb\u6c42\u984d\u3068\u30b5\u30fc\u30d3\u30b9\u6bce\u306e\u8acb\u6c42\u984d\u3092\u53d6\u5f97\u3057\u3001\u305d\u306e\u5185\u5bb9\u3092\u6574\u5f62\u3057\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u3057\u3066Amazon SNS\u306e\u30c8\u30d4\u30c3\u30af\u306b\u767a\u884c\u3059\u308b\u3002<\/li>\n\n\n\n<li>\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u53d6\u3063\u305fSNS\u30c8\u30d4\u30c3\u30af\u306f\u3001\u7d10\u3065\u3051\u305f\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\uff08\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff09\u5b9b\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1\u3059\u308b\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u7528\u8a9e\u306e\u7406\u89e3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u7279\u306bAmazon SNS\u306b\u767b\u5834\u3059\u308b\u7528\u8a9e\u3001\u305d\u3057\u3066\u305d\u308c\u305e\u308c\u306e\u95a2\u4fc2\u6027\u304c\u3084\u3084\u3053\u3057\u304b\u3063\u305f\u306e\u3067\u3001\u8d85\u3056\u3063\u304f\u308a\u3068\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ARN<\/strong>\uff1aAWS\u30ea\u30bd\u30fc\u30b9\u3092\u4e00\u610f\u306b\u8b58\u5225\u3059\u308b\u540d\u524d\u3002<\/li>\n\n\n\n<li><strong>\u30c8\u30d4\u30c3\u30af<\/strong>\uff1a\u8907\u6570\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\uff08\u3053\u3053\u3067\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff09\u3092\u30b0\u30eb\u30fc\u30d7\u306b\u307e\u3068\u3081\u308b\u6a5f\u80fd\u3002<\/li>\n\n\n\n<li><strong>\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8<\/strong>\uff1a\u914d\u4fe1\u5148\u3002\u4eca\u56de\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3068\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3<\/strong>\uff1a\u30c8\u30d4\u30c3\u30af\u3068\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u7d10\u3065\u3051\u308b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u3088\u308a\u6df1\u304f\u7406\u89e3\u3059\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u8a18\u4e8b\u306e\u7528\u8a9e\u8aac\u660e\u306e\u7b87\u6240\u304c\u3068\u3066\u3082\u53c2\u8003\u306b\u306a\u308a\u307e\u3057\u305f\u306e\u3067\u3001\u4e8b\u524d\u306b\u719f\u8aad\u3057\u3066\u304a\u304f\u4e8b\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.unitrust.co.jp\/6182\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon SNS\u3067\u30d7\u30c3\u30b7\u30e5\u901a\u77e5\u3092\u9001\u308b\u305f\u3081\u306e\u57fa\u790e\u77e5\u8b58 | UNITRUST<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8a2d\u5b9a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Cost Explorer\u306e\u6709\u52b9\u5316<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cost Explorer\u3092\u6709\u52b9\u5316\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001<a href=\"https:\/\/console.aws.amazon.com\/billing\/home#\/costexplorer\" target=\"_blank\" rel=\"noreferrer noopener\">\u30de\u30a4\u8acb\u6c42\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9<\/a>\u304b\u3089\u6709\u52b9\u5316\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_1-1024x534.png\" alt=\"Cost Explorer\" class=\"wp-image-316\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_1-1024x534.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_1-300x156.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_1-768x400.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_1.png 1332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">SNS \u30c8\u30d4\u30c3\u30af\u306e\u4f5c\u6210<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ap-northeast-1.console.aws.amazon.com\/sns\/v3\/home?region=ap-northeast-1#\/topics\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon SNS\u306e\u30b5\u30fc\u30d3\u30b9\u753b\u9762<\/a>\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002 \u203b\u5229\u7528\u3067\u304d\u308b\u30ea\u30fc\u30b8\u30e7\u30f3\u306f\u9650\u3089\u308c\u3066\u3044\u307e\u3059\u3002\uff08<a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/sns\/latest\/dg\/sns-supported-regions-countries.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u30ea\u30fc\u30b8\u30e7\u30f3\u304a\u3088\u3073\u56fd &#8211; Amazon Simple Notification Service<\/a>\uff09 \u203b\u4eca\u56de\u306f\u3001\u6771\u4eac\u30ea\u30fc\u30b8\u30e7\u30f3\uff08ap-northeast-1\uff09\u3067\u8a2d\u5b9a\u3092\u9032\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30c8\u30d4\u30c3\u30af\u300d\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u3001\u300c\u30c8\u30d4\u30c3\u30af\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"361\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_2-1024x361.png\" alt=\"SNS \u30c8\u30d4\u30c3\u30af\u306e\u4f5c\u6210\" class=\"wp-image-317\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_2-1024x361.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_2-300x106.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_2-768x271.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_2.png 1291w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30bf\u30a4\u30d7\u300d\u306f\u3001\u300c<strong>\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9<\/strong>\u300d\u3092\u9078\u629e\u3002 \u300c\u540d\u524d\u300d\u3068\u300c\u8868\u793a\u540d\u300d\u3092\u5165\u529b\u3057\u3001\u300c\u30c8\u30d4\u30c3\u30af\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u203b\u3053\u3053\u3067\u8a2d\u5b9a\u3057\u305f\u300c\u8868\u793a\u540d\u300d\u304c\u3001<strong>\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u8005\u540d<\/strong>\u3068\u306a\u308a\u307e\u3059\u3002 \u203b\u3061\u306a\u307f\u306b\u3001\u7ba1\u7406\u8005\u5411\u3051\u306b\u4f55\u304b\u901a\u77e5\u3059\u308b\u305f\u3081\u306e\u30c8\u30d4\u30c3\u30af\u3068\u3057\u3066\u3001\u4eca\u5f8c\u5225\u306e\u76ee\u7684\u3067\u306e\u914d\u4fe1\u306b\u3082\u5229\u7528\u3059\u308b\u4e8b\u3092\u60f3\u5b9a\u3057\u3001\u540d\u524d\u306f\u300c<strong>sendMailAdmin<\/strong>\u300d\u3001\u8868\u793a\u540d\u306f\u300c<strong>\u7ba1\u7406\u8005\u901a\u77e5\u30e1\u30fc\u30eb<\/strong>\u300d\u3068\u6c4e\u7528\u7684\u306a\u3082\u306e\u3057\u3066\u304a\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"1024\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_3-905x1024.png\" alt=\"SNS \u30c8\u30d4\u30c3\u30af\u306e\u4f5c\u6210\" class=\"wp-image-318\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_3-905x1024.png 905w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_3-265x300.png 265w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_3-768x869.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_3.png 1077w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u4f5c\u6210<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\uff08\uff0b\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\uff09\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u203b\u753b\u9762\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b<strong>ARN<\/strong>\u306f\u63a7\u3048\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1009\" height=\"835\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_4.png\" alt=\"\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u4f5c\u6210\" class=\"wp-image-319\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_4.png 1009w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_4-300x248.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_4-768x636.png 768w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8a18\u9805\u76ee\u3092\u5165\u529b\u3057\u3001\u300c\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u203b\u300c\u30c8\u30d4\u30c3\u30afARN\u300d\u306f\u81ea\u52d5\u5165\u529b\u3055\u308c\u308b\u306f\u305a\u3067\u3059\u304c\u3001\u3055\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u63a7\u3048\u3066\u304a\u3044\u305f\u30c8\u30d4\u30c3\u30afARN\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u9805\u76ee\u540d<\/th><th>\u5165\u529b\u5024\u30fb\u9078\u629e\u5024<\/th><\/tr><\/thead><tbody><tr><td><strong>\u30c8\u30d4\u30c3\u30afARN<\/strong><\/td><td>\u63a7\u3048\u3066\u304a\u3044\u305f\u30c8\u30d4\u30c3\u30af\u306eARN<\/td><\/tr><tr><td><strong>\u30d7\u30ed\u30c8\u30b3\u30eb<\/strong><\/td><td>E\u30e1\u30fc\u30eb<\/td><\/tr><tr><td><strong>\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8<\/strong><\/td><td>\u53d7\u4fe1\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"810\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_5.png\" alt=\"\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u4f5c\u6210\" class=\"wp-image-299\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_5.png 1010w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_5-300x241.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_5-768x616.png 768w\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u627f\u8a8d<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u6307\u5b9a\u3057\u305f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u5b9b\u306b\u3001\u300cAWS Notification &#8211; Subscription Confirmation\u300d\u3068\u3044\u3046\u4ef6\u540d\u3067\u78ba\u8a8d\u30e1\u30fc\u30eb\u304c\u9001\u3089\u308c\u3066\u304f\u308b\u306e\u3067\u3001\u300cConfirm subscription\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"421\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_6.png\" alt=\"\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u627f\u8a8d\" class=\"wp-image-298\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_6.png 705w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_6-300x179.png 300w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"301\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_7.png\" alt=\"\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u627f\u8a8d\" class=\"wp-image-310\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_7.png 593w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_7-300x152.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u30c8\u30d4\u30c3\u30af\u306b\u7d10\u3065\u3051\u305f\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u300c\u78ba\u8a8d\u6e08\u307f\u300d\u3068\u306a\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"765\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_8.png\" alt=\"\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\" class=\"wp-image-311\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_8.png 1010w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_8-300x227.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_8-768x582.png 768w\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Lambda\u95a2\u6570\u306e\u4f5c\u6210<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30c8\u30d4\u30c3\u30af\u30fb\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u30fb\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u4f5c\u6210\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30c8\u30d4\u30c3\u30af\u306eARN\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u767a\u884c\u3059\u308b\u3068\u3001\u3053\u306e\u30c8\u30d4\u30c3\u30af\u306b\u7d10\u3065\u3044\u305f\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\uff08\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff09\u5b9b\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u914d\u4fe1\u3055\u308c\u308b\u3068\u3044\u3046\u6d41\u308c\u306b\u306a\u308a\u307e\u3059\u3002 \u305d\u306e\u305f\u3081\u6b21\u306b\u3001\u30c8\u30d4\u30c3\u30af\u306eARN\u306b\u5bfe\u3057\u3066\u767a\u884c\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\u3059\u308bLambda\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u307e\u305a\u306f\u3001<a href=\"https:\/\/ap-northeast-1.console.aws.amazon.com\/lambda\/home?region=ap-northeast-1#\/discover\" target=\"_blank\" rel=\"noreferrer noopener\">AWS Lambda\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9<\/a>\u304b\u3089\u3001\u300c\u95a2\u6570\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_9-1024x496.png\" alt=\"Lambda\u95a2\u6570\u306e\u4f5c\u6210\" class=\"wp-image-312\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_9-1024x496.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_9-300x145.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_9-768x372.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_9.png 1222w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u300c\u4e00\u304b\u3089\u4f5c\u6210\u300d\u306b\u306a\u3063\u3066\u3044\u308b\u4e8b\u3092\u78ba\u8a8d\u3057\u3001\u300c\u57fa\u672c\u7684\u306a\u60c5\u5831\u300d\u306b\u4ee5\u4e0b\u3092\u5165\u529b\u3057\u3001\u300c\u95a2\u6570\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u203b\u300c\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u300d\u306e\u300c<strong>\u5b9f\u884c\u30ed\u30fc\u30eb\u306e\u9078\u629e\u307e\u305f\u306f\u4f5c\u6210<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c<strong>AWS \u30dd\u30ea\u30b7\u30fc\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304b\u3089\u65b0\u3057\u3044\u30ed\u30fc\u30eb\u3092\u4f5c\u6210<\/strong>\u300d\u3092\u9078\u629e\u3057\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u9805\u76ee\u540d<\/th><th>\u5165\u529b\u5024\u30fb\u9078\u629e\u5024<\/th><\/tr><\/thead><tbody><tr><td>\u95a2\u6570\u540d<\/td><td>sendCost\uff08\u597d\u304d\u306a\u540d\u524d\u3067\uff09<\/td><\/tr><tr><td>\u30e9\u30f3\u30bf\u30a4\u30e0<\/td><td>Python 3.7<\/td><\/tr><tr><td>\u30ed\u30fc\u30eb\u540d<\/td><td>SNSServiceRoleForLambda\uff08\u597d\u304d\u306a\u540d\u524d\u3067\uff09<\/td><\/tr><tr><td>\u30dd\u30ea\u30b7\u30fc\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/td><td>Amazon SNS \u767a\u884c\u30dd\u30ea\u30b7\u30fc<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"1024\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_10-920x1024.png\" alt=\"Lambda\u95a2\u6570\u306e\u4f5c\u6210\" class=\"wp-image-313\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_10-920x1024.png 920w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_10-270x300.png 270w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_10-768x855.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_10.png 1179w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Lambda\u95a2\u6570\u306e\u30c6\u30b9\u30c8<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b21\u306b\u3001\u8acb\u6c42\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u304f\u4e8b\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u3053\u3053\u307e\u3067\u306e\u8a2d\u5b9a\u78ba\u8a8d\u306e\u305f\u3081\u3001\u307e\u305a\u306f\u30c6\u30b9\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u767a\u884c\u3059\u308b\u51e6\u7406\u3092\u66f8\u3044\u3066\u307f\u307e\u3059\u3002 \u95a2\u6570\u4f5c\u6210\u5f8c\u306e\u4e0b\u90e8\u306b\u3042\u308b\u300c\u95a2\u6570\u30b3\u30fc\u30c9\u300d\u6b04\u306b\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u203b<code>TopicArn<\/code> \u306b\u306f\u3001<strong>SNS\u30c8\u30d4\u30c3\u30af\u4f5c\u6210\u6642\u306b\u63a7\u3048\u3066\u304a\u3044\u305fARN<\/strong>\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import boto3\n\u200b\ndef lambda_handler(event, context):\n    sns = boto3.client('sns')\n    subject = 'Lambda\u304b\u3089\u306e\u30c6\u30b9\u30c8\u30e1\u30fc\u30eb\u4ef6\u540d\u3067\u3059\u3002'\n    message = 'Lambda\u304b\u3089\u306e\u30c6\u30b9\u30c8\u30e1\u30fc\u30eb\u672c\u6587\u3067\u3059\u3002'\n\u200b\n    response = sns.publish(\n \u00a0      TopicArn = 'arn:aws:sns:*:*:*',\n \u00a0      Subject = subject,\n \u00a0      Message = message\n    )\n\u200b\n    return response<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066\u3001\u5b9f\u969b\u306b\u306f\u30c8\u30ea\u30ac\u30fc\u3067\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3059\u308b\u4e8b\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u624b\u52d5\u3067\u9001\u4fe1\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53f3\u4e0a\u306e\u300c\u30c7\u30d7\u30ed\u30a4\u300d\u3092\u62bc\u4e0b\u3057\u305f\u5f8c\u3001\u300c\u30c6\u30b9\u30c8\u300d\u3092\u62bc\u4e0b\u3057\u3001\u300c\u30a4\u30d9\u30f3\u30c8\u540d\u300d\u306b\u9069\u5f53\u306a\u540d\u524d\u3092\u5165\u308c\u3001\u300c\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u305d\u306e\u4ed6\u306f\u521d\u671f\u5024\u306e\u307e\u307e\u3067OK\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"832\" height=\"986\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_11.png\" alt=\"\u30c6\u30b9\u30c8\u30a4\u30d9\u30f3\u30c8\u306e\u4f5c\u6210\" class=\"wp-image-314\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_11.png 832w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_11-253x300.png 253w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_11-768x910.png 768w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5143\u306e\u753b\u9762\u306b\u623b\u308a\u3001\u518d\u5ea6\u53f3\u4e0a\u306e\u300c\u30c6\u30b9\u30c8\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u95a2\u6570\u304c\u5b9f\u884c\u3055\u308c\u3001\u6307\u5b9a\u3057\u305f\u53d7\u4fe1\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306b\u30e1\u30fc\u30eb\u304c\u5c4a\u3044\u3066\u3044\u308b\u306f\u305a\u3067\u3059\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"679\" height=\"463\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_12.png\" alt=\"\u30c6\u30b9\u30c8\u30e1\u30fc\u30eb\" class=\"wp-image-315\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_12.png 679w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_12-300x205.png 300w\" sizes=\"auto, (max-width: 679px) 100vw, 679px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c4a\u304b\u306a\u3044\u5834\u5408\u306f\u3001\u30b3\u30fc\u30c9\u5165\u529b\u6b04\u306e\u4e0b\u90e8\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\uff08Execution results\uff09\u306b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u3001\u5165\u529b\u3057\u305fARN\u306b\u9593\u9055\u3044\u304c\u306a\u3044\u304b\u7b49\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8acb\u6c42\u60c5\u5831\u901a\u77e5\u7528\u306e\u30b3\u30fc\u30c9\u4f5c\u6210<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3044\u3088\u3044\u3088\u3001Cost Explorer\u304b\u3089\u8acb\u6c42\u984d\u3092\u53d6\u5f97\u3057\u3001Amazon SNS\u3067\u901a\u77e5\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\u3002 \u5148\u307b\u3069\u4f5c\u6210\u3057\u305f\u95a2\u6570\u306e\u300c\u95a2\u6570\u30b3\u30fc\u30c9\u300d\u6b04\u5185\u3092\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002 <code>TopicArn<\/code> \u306b\u306f\u3001\u524d\u56de\u540c\u69d8SNS\u30c8\u30d4\u30c3\u30af\u4f5c\u6210\u6642\u306b\u63a7\u3048\u3066\u304a\u3044\u305fARN\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u203b\u5f8c\u8ff0\u3057\u307e\u3059\u304c\u3001\u8ffd\u52a0\u8a2d\u5b9a\u3092\u884c\u308f\u306a\u3044\u3068\u30c6\u30b9\u30c8\u3057\u3066\u3082\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3059\uff01<\/strong> \u203b\u30b3\u30fc\u30c9\u306f\u3001<a href=\"https:\/\/dev.classmethod.jp\/articles\/notify-slack-aws-billing\/\" target=\"_blank\" rel=\"noreferrer noopener\">Developers.IO\u306e\u8a18\u4e8b<\/a>\u306e\u3082\u306e\u3092\u30d9\u30fc\u30b9\u3068\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import boto3 from datetime\nimport datetime, timedelta, date\n\u200b\ndef lambda_handler(event, context):\n \u00a0  ce = boto3.client('ce')\n \u00a0  sns = boto3.client('sns')\n\u200b\n \u00a0  ## \u4eca\u6708\u306e\u5408\u8a08\u8acb\u6c42\u984d\u3092\u53d6\u5f97\n \u00a0  total_billing = get_total_billing(ce)\n \u00a0  ## \u4eca\u6708\u306e\u5408\u8a08\u8acb\u6c42\u984d\u3092\u53d6\u5f97\uff08\u30b5\u30fc\u30d3\u30b9\u6bce\uff09\n \u00a0  service_billings = get_service_billings(ce)\n\u200b\n \u00a0  ## Amazon SNS\u30c8\u30d4\u30c3\u30af\u306b\u767a\u884c\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\n \u00a0  (subject, message) = get_message(total_billing, service_billings)\n\u200b\n \u00a0  response = sns.publish(\n \u00a0 \u00a0 \u00a0  TopicArn = 'arn:aws:sns:*:*:*',\n \u00a0 \u00a0 \u00a0  Subject = subject,\n \u00a0 \u00a0 \u00a0  Message = message\n \u00a0  )\n\u200b\n \u00a0  return response\n\u200b\ndef get_total_billing(ce):\n \u00a0  (start_date, end_date) = get_total_cost_date_range()\n\u200b\n \u00a0  response = ce.get_cost_and_usage(\n \u00a0 \u00a0 \u00a0  TimePeriod={\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'Start': start_date,\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'End': end_date\n \u00a0 \u00a0 \u00a0  },\n \u00a0 \u00a0 \u00a0  Granularity='MONTHLY',\n \u00a0 \u00a0 \u00a0  Metrics=&#91;\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'AmortizedCost'\n \u00a0 \u00a0 \u00a0  ]\n \u00a0  )\n\u200b\n \u00a0  return {\n \u00a0 \u00a0 \u00a0  'start': response&#91;'ResultsByTime']&#91;0]&#91;'TimePeriod']&#91;'Start'],\n \u00a0 \u00a0 \u00a0  'end': response&#91;'ResultsByTime']&#91;0]&#91;'TimePeriod']&#91;'End'],\n \u00a0 \u00a0 \u00a0  'billing': response&#91;'ResultsByTime']&#91;0]&#91;'Total']&#91;'AmortizedCost']&#91;'Amount'],\n \u00a0  }\n\u200b\ndef get_service_billings(ce):\n \u00a0  (start_date, end_date) = get_total_cost_date_range()\n\u200b\n \u00a0  response = ce.get_cost_and_usage(\n \u00a0 \u00a0 \u00a0  TimePeriod={\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'Start': start_date,\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'End': end_date\n \u00a0 \u00a0 \u00a0  },\n \u00a0 \u00a0 \u00a0  Granularity='MONTHLY',\n \u00a0 \u00a0 \u00a0  Metrics=&#91;\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'AmortizedCost'\n \u00a0 \u00a0 \u00a0  ],\n \u00a0 \u00a0 \u00a0  GroupBy=&#91;\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  {\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'Type': 'DIMENSION',\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'Key': 'SERVICE'\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  }\n \u00a0 \u00a0 \u00a0  ]\n \u00a0  )\n\u200b\n \u00a0  billings = &#91;]\n\u200b\n \u00a0  for item in response&#91;'ResultsByTime']&#91;0]&#91;'Groups']:\n \u00a0 \u00a0 \u00a0  billings.append({\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'service_name': item&#91;'Keys']&#91;0],\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  'billing': item&#91;'Metrics']&#91;'AmortizedCost']&#91;'Amount']\n \u00a0 \u00a0 \u00a0  })\n\u200b\n \u00a0  return billings\n\u200b\n\u200b\ndef get_total_cost_date_range():\n \u00a0  start_date = date.today().replace(day=1).isoformat()\n \u00a0  end_date = date.today().isoformat()\n\u200b\n \u00a0  ## get_cost_and_usage()\u306estart\u3068end\u306b\u540c\u3058\u65e5\u4ed8\u306f\u6307\u5b9a\u4e0d\u53ef\u306e\u305f\u3081\u3001\u4eca\u65e5\u304c1\u65e5\u306a\u3089\u300c\u5148\u67081\u65e5\u304b\u3089\u4eca\u67081\u65e5\uff08\u4eca\u65e5\uff09\u300d\u307e\u3067\u306e\u7bc4\u56f2\u306b\u3059\u308b\n \u00a0  if start_date == end_date:\n \u00a0 \u00a0 \u00a0  end_of_month = datetime.strptime(start_date, '%Y-%m-%d') + timedelta(days=-1)\n \u00a0 \u00a0 \u00a0  begin_of_month = end_of_month.replace(day=1)\n \u00a0 \u00a0 \u00a0  return begin_of_month.date().isoformat(), end_date\n \u00a0  return start_date, end_date\n\u200b\n\u200b\ndef get_message(total_billing, service_billings):\n \u00a0  start = datetime.strptime(total_billing&#91;'start'], '%Y-%m-%d').strftime('%Y\/%m\/%d')\n\u200b\n \u00a0  ## End\u306e\u65e5\u4ed8\u306f\u7d50\u679c\u306b\u542b\u307e\u306a\u3044\u305f\u3081\u3001\u8868\u793a\u4e0a\u306f\u524d\u65e5\u306b\u3057\u3066\u304a\u304f\n \u00a0  end_today = datetime.strptime(total_billing&#91;'end'], '%Y-%m-%d')\n \u00a0  end_yesterday = (end_today - timedelta(days=1)).strftime('%Y\/%m\/%d')\n\u200b\n \u00a0  total = round(float(total_billing&#91;'billing']), 2)\n \u00a0  subject = f'{start}\uff5e{end_yesterday}\u306e\u8acb\u6c42\u984d\uff1a${total:.2f}'\n\u200b\n \u00a0  message = &#91;]\n \u00a0  message.append('\u3010\u5185\u8a33\u3011')\n \u00a0  for item in service_billings:\n \u00a0 \u00a0 \u00a0  service_name = item&#91;'service_name']\n \u00a0 \u00a0 \u00a0  billing = round(float(item&#91;'billing']), 2)\n\u200b\n \u00a0 \u00a0 \u00a0  if billing == 0.0:\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  ## \u8acb\u6c42\u7121\u3057\u306e\u5834\u5408\u306f\u5185\u8a33\u3092\u8868\u793a\u3057\u306a\u3044\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  continue\n \u00a0 \u00a0 \u00a0  message.append(f'\u30fb{service_name}: ${billing:.2f}')\n\u200b\n \u00a0  return subject, '\\n'.join(message)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3067\u5b8c\u6210\u304b\u3068\u601d\u3044\u304d\u3084\u3001<strong>Lamda\u306b\u5272\u308a\u5f53\u3066\u305f\u30ed\u30fc\u30eb\u306bCost Explorer\u3078\u30a2\u30af\u30bb\u30b9\u3059\u308b\u6a29\u9650\u304c\u306a\u3044<\/strong>\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>\"errorMessage\": \"An error occurred (AccessDeniedException) when calling the GetCostAndUsage operation: User: arn:aws:sts::251745928455:assumed-role\/SNSServiceRoleForLambda\/sendCost is not authorized to perform: ce:GetCostAndUsage on resource: arn:aws:ce:us-east-1:251745928455:\/GetCostAndUsage\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3053\u3067\u3001IAM\u7ba1\u7406\u753b\u9762\u306b\u3066\u3001Cost Explorer\u3078\u30a2\u30af\u30bb\u30b9\u51fa\u6765\u308b\u30dd\u30ea\u30b7\u30fc\u3092\u30ed\u30fc\u30eb\u306b\u30a2\u30bf\u30c3\u30c1\u3057\u307e\u3059\u3002 \u203b\u95a2\u6570\u306e\u4f5c\u6210\u6642\u306b\u300c\u30ab\u30b9\u30bf\u30e0\u30ed\u30fc\u30eb\u3092\u4f5c\u6210\u300d\u3092\u9078\u629e\u3057\u3001json\u3067\u30dd\u30ea\u30b7\u30fc\u3092\u4e00\u6c17\u306b\u5272\u308a\u5f53\u3066\u308b\u65b9\u6cd5\u3082\u3042\u308b\u3088\u3046\u3067\u3059\u304c\u30012020\/5\u6642\u70b9\u3067\u306f\u9078\u629e\u80a2\u306b\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30dd\u30ea\u30b7\u30fc\u306e\u4f5c\u6210\u3068\u30a2\u30bf\u30c3\u30c1<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305a\u3001<a href=\"https:\/\/console.aws.amazon.com\/iam\/home#\/policies\" target=\"_blank\" rel=\"noreferrer noopener\">IAM\u7ba1\u7406\u753b\u9762\u306e\u30dd\u30ea\u30b7\u30fc\u4e00\u89a7<\/a>\u3092\u8868\u793a\u3057\u3001\u300c\u30dd\u30ea\u30b7\u30fc\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_13-1024x367.png\" alt=\"\u30dd\u30ea\u30b7\u30fc\u306e\u4f5c\u6210\" class=\"wp-image-300\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_13-1024x367.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_13-300x108.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_13-768x276.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_13.png 1332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u306e\u9805\u76ee\u3092\u5165\u529b\u3057\u3001\u300c\u30dd\u30ea\u30b7\u30fc\u306e\u78ba\u8a8d\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u9805\u76ee\u540d<\/th><th>\u5165\u529b\u5024\u30fb\u9078\u629e\u5024<\/th><\/tr><\/thead><tbody><tr><td><strong>\u30b5\u30fc\u30d3\u30b9<\/strong><\/td><td>Cost Explorer Service<\/td><\/tr><tr><td><strong>\u30a2\u30af\u30b7\u30e7\u30f3<\/strong><\/td><td>\u300cGetCostAndUsage\u300d\u3068\u691c\u7d22\u3057\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u308b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"712\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_14-1024x712.png\" alt=\"\u30dd\u30ea\u30b7\u30fc\u306e\u78ba\u8a8d\" class=\"wp-image-301\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_14-1024x712.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_14-300x209.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_14-768x534.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_14.png 1148w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u30dd\u30ea\u30b7\u30fc\u306e\u78ba\u8a8d\u753b\u9762\u3067\u3001\u300c\u540d\u524d\u300d\u3092\u5165\u529b\u3057\u3001\u300c\u30dd\u30ea\u30b7\u30fc\u306e\u4f5c\u6210\u300d\u3092\u62bc\u4e0b\u3002 \u203b\u3053\u3053\u3067\u306f\u540d\u524d\u3092\u300c<strong>AmazonCostExplorerGetCostAccess<\/strong>\u300d\u3068\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_15-1024x697.png\" alt=\"\u30dd\u30ea\u30b7\u30fc\u306e\u4f5c\u6210\" class=\"wp-image-302\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_15-1024x697.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_15-300x204.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_15-768x522.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_15.png 1220w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/console.aws.amazon.com\/iam\/home#\/roles\" target=\"_blank\" rel=\"noreferrer noopener\">\u30ed\u30fc\u30eb\u306e\u4e00\u89a7\u753b\u9762<\/a>\u306b\u79fb\u52d5\u3057\u3001Lambda\u306b\u5272\u308a\u5f53\u3066\u305f\u30ed\u30fc\u30eb\u3092\u9078\u629e\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"371\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_16-1024x371.png\" alt=\"\u30ed\u30fc\u30eb\u306e\u4e00\u89a7\u753b\u9762\" class=\"wp-image-303\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_16-1024x371.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_16-300x109.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_16-768x278.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_16.png 1332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30dd\u30ea\u30b7\u30fc\u3092\u30a2\u30bf\u30c3\u30c1\u3057\u307e\u3059\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"762\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_17.png\" alt=\"\u30dd\u30ea\u30b7\u30fc\u3092\u30a2\u30bf\u30c3\u30c1\" class=\"wp-image-304\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_17.png 1016w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_17-300x225.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_17-768x576.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30dd\u30ea\u30b7\u30fc\u306e\u30d5\u30a3\u30eb\u30bf\u300d\u3067\u3001\u30dd\u30ea\u30b7\u30fc\u4f5c\u6210\u306e\u969b\u306b\u8a2d\u5b9a\u3057\u305f\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u691c\u7d22\uff08\u3053\u306e\u8a18\u4e8b\u306e\u4f8b\u3067\u306f\u300cAmazonCostExplorerGetCostAccess\u300d\uff09\u3057\u3001\u30d2\u30c3\u30c8\u3057\u305f\u3082\u306e\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u3001\u300c\u30dd\u30ea\u30b7\u30fc\u306e\u30a2\u30bf\u30c3\u30c1\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"698\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_18-1024x698.png\" alt=\"\u30dd\u30ea\u30b7\u30fc\u3092\u30a2\u30bf\u30c3\u30c1\" class=\"wp-image-305\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_18-1024x698.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_18-300x205.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_18-768x524.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_18.png 1170w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Lambda\u95a2\u6570\u306e\u5b9f\u884c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3067\u95a2\u6570\u304c\u6b63\u5e38\u306b\u5b9f\u884c\u3067\u304d\u308b\u72b6\u614b\u306b\u306a\u3063\u305f\u306e\u3067\u3001\u4f5c\u6210\u3057\u305f\u95a2\u6570\u306e\u8a2d\u5b9a\u753b\u9762\u53f3\u4e0a\u306e\u300c\u30c6\u30b9\u30c8\u300d\u3092\u62bc\u4e0b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_19-1024x429.png\" alt=\"Lambda\u95a2\u6570\u306e\u5b9f\u884c\" class=\"wp-image-306\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_19-1024x429.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_19-300x126.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_19-768x322.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_19.png 1232w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5168\u3066\u6b63\u3057\u304f\u8a2d\u5b9a\u3067\u304d\u3066\u3044\u308c\u3070\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30e1\u30fc\u30eb\u304c\u5c4a\u304f\u306f\u305a\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"444\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_20.png\" alt=\"\u30e1\u30fc\u30eb\u901a\u77e5\" class=\"wp-image-307\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_20.png 701w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_20-300x190.png 300w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u203bCost Explorer\u3092\u6709\u52b9\u5316\u3057\u305f\u3070\u304b\u308a\u306e\u6642\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u300c\u307e\u3060\u30c7\u30fc\u30bf\u304c\u7121\u3044\u306e\u3067\u3057\u3070\u3089\u304f\u5f85\u3063\u3066\u306d\u300d\u3068\u3044\u3046\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3059\u306e\u3067\u3001\u6570\u65e5\u5f85\u3063\u3066\u304b\u3089\u518d\u5ea6\u8a66\u3057\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>{\n  \"errorMessage\": \"An error occurred (DataUnavailableException) when calling the GetCostAndUsage operation: Data is not available. Please try to adjust the time period. If just enabled Cost Explorer, data might not be ingested yet\",\n  \"errorType\": \"DataUnavailableException\",\n  \"stackTrace\": &#91;\n \u00a0  \"  File \\\"\/var\/task\/lambda_function.py\\\", line 9, in lambda_handler\\n \u00a0  total_billing = get_total_billing(ce)\\n\",\n \u00a0  \"  File \\\"\/var\/task\/lambda_function.py\\\", line 34, in get_total_billing\\n \u00a0  'AmortizedCost'\\n\",\n \u00a0  \"  File \\\"\/var\/runtime\/botocore\/client.py\\\", line 357, in _api_call\\n \u00a0  return self._make_api_call(operation_name, kwargs)\\n\",\n \u00a0  \"  File \\\"\/var\/runtime\/botocore\/client.py\\\", line 676, in _make_api_call\\n \u00a0  raise error_class(parsed_response, operation_name)\\n\"\n  ]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c8\u30ea\u30ac\u30fc\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u5f8c\u306b\u3001\u6bce\u65e5\u6c7a\u307e\u3063\u305f\u6642\u9593\u306b\u30e1\u30fc\u30eb\u901a\u77e5\u3059\u308b\u305f\u3081\u306e\u30c8\u30ea\u30ac\u30fc\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 \u95a2\u6570\u306e\u8a2d\u5b9a\u753b\u9762\u306e\u5de6\u5074\u300c\u30c8\u30ea\u30ac\u30fc\u3092\u8ffd\u52a0\u300d\u3092\u62bc\u4e0b\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_21-1024x457.png\" alt=\"\u30c8\u30ea\u30ac\u30fc\u306e\u8a2d\u5b9a\" class=\"wp-image-308\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_21-1024x457.png 1024w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_21-300x134.png 300w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_21-768x343.png 768w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_21.png 1249w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u3057\u3001\u300c\u8ffd\u52a0\u300d\u3092\u62bc\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u9805\u76ee\u540d<\/th><th>\u5165\u529b\u5024\u30fb\u9078\u629e\u5024<\/th><\/tr><\/thead><tbody><tr><td><strong>\u30c8\u30ea\u30ac\u30fc\u3092\u9078\u629e<\/strong><\/td><td>CloudWatch Events\/EventBridge<\/td><\/tr><tr><td><strong>\u30eb\u30fc\u30eb<\/strong><\/td><td>\u65b0\u898f\u30eb\u30fc\u30eb\u306e\u4f5c\u6210<\/td><\/tr><tr><td><strong>\u30eb\u30fc\u30eb\u540d<\/strong><\/td><td>sendDailyCost\uff08\u9069\u5f53\u306b\uff09<\/td><\/tr><tr><td><strong>\u30eb\u30fc\u30eb\u30bf\u30a4\u30d7<\/strong><\/td><td>\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u5f0f<\/td><\/tr><tr><td><strong>\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u5f0f<\/strong><\/td><td>cron(0 14 ? * * *)<\/td><\/tr><tr><td><strong>\u30c8\u30ea\u30ac\u30fc\u306e\u6709\u52b9\u5316<\/strong><\/td><td>\u30c1\u30a7\u30c3\u30af\u3059\u308b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f23\u6642\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002 \u6ce8\u610f\u70b9\u3068\u3057\u3066\u3001\u6642\u9593\u306fUTC\u3067\u8a2d\u5b9a\u3059\u308b\u306e\u3067\u3001<strong>JST\uff08\u65e5\u672c\u6a19\u6e96\u6642\uff09\u304b\u30899\u6642\u9593\u5206\u6e1b\u7b97\u3057\u305f\u6642\u523b<\/strong>\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"992\" src=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_22.png\" alt=\"\u30c8\u30ea\u30ac\u30fc\u306e\u8a2d\u5b9a\" class=\"wp-image-309\" srcset=\"https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_22.png 880w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_22-266x300.png 266w, https:\/\/aki-hamano.blog\/wp-content\/uploads\/2024\/06\/aws-notification_22-768x866.png 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u3042\u3068\u306f\u3001\u6bce\u65e5\u6307\u5b9a\u3057\u305f\u6642\u9593\u306b\u30e1\u30fc\u30eb\u304c\u5c4a\u304f\u4e8b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3067\u3001\u5b89\u5fc3\u3057\u3066\u6bce\u65e5\u7720\u308c\u307e\u3059\u306d\uff01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u53c2\u8003\u60c5\u5831\u30fb\u5f15\u7528<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/qiita.com\/tsumita7\/items\/bbafba094db5794d0374\" target=\"_blank\" rel=\"noreferrer noopener\">Lambda\u3092\u4f7f\u3063\u3066Amazon SNS\u304b\u3089\u30e1\u30fc\u30eb\u3092\u98db\u3070\u3057\u3066\u307f\u305f &#8211; Qiita<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hacknote.jp\/archives\/44913\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cost Explorer\u3068CloudWatch\u306e\u6599\u91d1 | \u30cf\u30c3\u30af\u30ce\u30fc\u30c8<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hacknote.jp\/archives\/44359\/\" target=\"_blank\" rel=\"noreferrer noopener\">CostExplorer\u3092\u4f7f\u3044\u3001AWS\u306e\u6599\u91d1\u3092\u9001\u4fe1\u3059\u308b | \u30cf\u30c3\u30af\u30ce\u30fc\u30c8<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.unitrust.co.jp\/6182\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon SNS\u3067\u30d7\u30c3\u30b7\u30e5\u901a\u77e5\u3092\u9001\u308b\u305f\u3081\u306e\u57fa\u790e\u77e5\u8b58 | UNITRUST<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.classmethod.jp\/articles\/notify-slack-aws-billing\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS\u30b5\u30fc\u30d3\u30b9\u6bce\u306e\u8acb\u6c42\u984d\u3092\u6bce\u65e5Slack\u306b\u901a\u77e5\u3057\u3066\u307f\u305f | Developers.IO<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b CloudWatch\u3067\u8acb\u6c42\u30a2\u30e9\u30fc\u30c8\u3092\u8a2d\u5b9a\u3059\u308b\u4e8b\u306f\u3067\u304d\u307e\u3059\u304c\u3001\u8d85\u5fc3\u914d\u6027\u306a\u81ea\u5206\u3068\u3057\u3066\u306f\u3001\u6708\u521d\uff5e\u524d\u65e5\u307e\u3067\u306e\u8acb\u6c42\u984d\u3092\u6bce\u65e5\u30e1\u30fc\u30eb\u3067\u78ba\u8a8d\u3057\u3066\u304a\u304d\u305f\u3044\u3002 AWS Lambda\u3068webhook\u3092\u4f7f\u3063\u3066Slack\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u901a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_locale":"ja","_original_post":"https:\/\/aki-hamano.blog\/?p=293","footnotes":""},"categories":[13],"tags":[],"class_list":["post-293","post","type-post","status-publish","format-standard","hentry","category-ci-cd-test","ja"],"_links":{"self":[{"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/posts\/293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/comments?post=293"}],"version-history":[{"count":9,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/posts\/293\/revisions"}],"predecessor-version":[{"id":326,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/posts\/293\/revisions\/326"}],"wp:attachment":[{"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/media?parent=293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/categories?post=293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aki-hamano.blog\/wp-json\/wp\/v2\/tags?post=293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}