{"id":32173,"date":"2023-11-30T16:45:18","date_gmt":"2023-11-30T07:45:18","guid":{"rendered":"https:\/\/gri.jp\/media\/?p=32173"},"modified":"2023-11-27T16:49:21","modified_gmt":"2023-11-27T07:49:21","slug":"aws%e3%81%aes3%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8blambda%e9%96%a2%e6%95%b0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6apigateway%e3%81%8b%e3%82%89","status":"publish","type":"post","link":"https:\/\/gri.jp\/media\/entry\/32173","title":{"rendered":"AWS\u306eS3\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3059\u308bLambda\u95a2\u6570\u3092\u4f5c\u3063\u3066APIGateway\u304b\u3089\u5b9f\u884c\u3059\u308b\u307e\u3067\u3092ChatGPT\u5148\u751f\u306b\u6559\u3048\u3066\u3082\u3089\u3063\u305f"},"content":{"rendered":"<p>ChatGPT\u5148\u751f\u306b\u6559\u3048\u3066\u3082\u3089\u3046\u7b2c\u4e8c\u5f3e\u306fLambda\u3068APIGateway\u3067\u3059\u3002<\/p>\n<p>Lambda\u95a2\u6570\u306fPython\u3092\u4f7f\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h2>\u3084\u308a\u305f\u3044\u3053\u3068<\/h2>\n<p>API\u306e\u30d1\u30b9\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3067\u6307\u5b9a\u3057\u305fID\u3092\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u6301\u3064\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u3001S3\u306e\u7279\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u8aad\u307f\u8fbc\u3093\u3067\u3001\u305d\u306e\u307e\u307e\u8fd4\u5374\u3059\u308b\u3060\u3051\u306eAPI\u3092\u4f5c\u308a\u305f\u3044\u3093\u3058\u3083\u3063<\/p>\n<h2>\u65e9\u901f\u5148\u751f\u306b\u624b\u9806\u3092\u805e\u3044\u3066\u307f\u308b<\/h2>\n<p>\u6328\u62f6\u306f\u4eba\u9593\u3068\u3057\u3066\u57fa\u672c\u3067\u3059\u3002\u5148\u751f\u306f\u3044\u3064\u3082\u30cb\u30b3\u30cb\u30b3\u6a5f\u5acc\u304c\u3088\u304f\u3066\u512a\u3057\u3044\u3002<\/p>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-32177 size-full\" src=\"https:\/\/gri.jp\/media\/wp\/wp-content\/uploads\/2023\/11\/aws-gtp-1.jpg\" alt=\"\" width=\"942\" height=\"627\" \/>\n<p>\u9577\u3044\u306e\u3067\u7701\u7565\u3057\u307e\u3059\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u624b\u9806\u3060\u305d\u3046\u3067\u3059\u3002<\/p>\n<ol>\n<li>Lambda\u95a2\u6570\u306e\u4f5c\u6210<\/li>\n<li>API Gateway\u306e\u4f5c\u6210<\/li>\n<li>\u30ea\u30bd\u30fc\u30b9\u3068\u30e1\u30bd\u30c3\u30c9\u306e\u8a2d\u5b9a<\/li>\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4<\/li>\n<li>API\u306e\u30c6\u30b9\u30c8<\/li>\n<li>API\u306e\u30ab\u30b9\u30bf\u30e0\u30c9\u30e1\u30a4\u30f3\u306e\u8a2d\u5b9a\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09<\/li>\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u8a2d\u5b9a\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09<\/li>\n<li>API\u306e\u30c7\u30d7\u30ed\u30a4<\/li>\n<\/ol>\n<p>\u2463\u306e\u30ea\u30bd\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4\u3063\u3066\u306e\u304c\u3061\u3087\u3063\u3068\u610f\u5473\u4e0d\u660e\u3067\u3057\u305f\u304c\u6d41\u308c\u3068\u304b\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u3069\u304c\u3056\u3063\u304f\u308a\u628a\u63e1\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u3068\u308a\u3042\u3048\u305a\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u304f\u3060\u3055\u3044\uff01<\/h2>\n<p>\u307e\u3060AWS\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u3089\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u3068\u308a\u3042\u3048\u305a\u8cb0\u3048\u308b\u3082\u306e\u3092\u5148\u306b\u3082\u3089\u3044\u305f\u3044\u6027\u5206\u306a\u306e\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u3044\u3066\u3082\u3089\u3044\u307e\u3057\u305f\u3002<\/p>\n<div class=\"jin-iconbox green-iconbox\">\n<div class=\"jin-iconbox-icons\"><i class=\"jic jin-ifont-comment jin-icons\"><\/i><\/div>\n<div class=\"jin-iconbox-main green--border\">\u2460Lambda\u95a2\u6570\u306e\u4f5c\u6210\u3067\u3001pyhton\u3092\u4f7f\u7528\u3057\u3066\u3001S3\u304b\u3089json\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u305d\u306e\u307e\u307e\u30ec\u30b9\u30dd\u30f3\u30b9\u30dc\u30c7\u30a3\u3068\u3057\u3066\u8fd4\u5374\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u898b\u305b\u3066\u3082\u3089\u3048\u307e\u305b\u3093\u304b\uff1f\/get\/{id}\/ \u306e\u3088\u3046\u306aURL\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3067\u3001{id}\u3092\u53d7\u3051\u53d6\u3063\u3066{id}.json\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u3092\u898b\u305b\u3066\u304f\u3060\u3055\u3044\u3002<\/div>\n<\/div>\n<pre class=\"language-python\"><code>import json\r\nimport boto3\r\n\r\ns3 = boto3.client('s3')\r\n\r\ndef lambda_handler(event, context):\r\n    # URL\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u304b\u3089{id}\u3092\u53d6\u5f97\r\n    id = event['pathParameters']['id']\r\n\r\n    # S3\u30d0\u30b1\u30c3\u30c8\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30fc\u3092\u6307\u5b9a\r\n    bucket_name = 'your-s3-bucket'\r\n    object_key = f'{id}.json'\r\n\r\n    try:\r\n        # S3\u304b\u3089JSON\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\r\n        response = s3.get_object(Bucket=bucket_name, Key=object_key)\r\n        json_content = response['Body'].read().decode('utf-8')\r\n        json_data = json.loads(json_content)\r\n\r\n        # \u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u69cb\u7bc9\r\n        response_data = {\r\n            'statusCode': 200,\r\n            'body': json.dumps(json_data),\r\n            'headers': {\r\n                'Content-Type': 'application\/json'\r\n            }\r\n        }\r\n        return response_data\r\n\r\n    except Exception as e:\r\n        # \u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\r\n        response_data = {\r\n            'statusCode': 500,\r\n            'body': json.dumps({'error': str(e)}),\r\n            'headers': {\r\n                'Content-Type': 'application\/json'\r\n            }\r\n        }\r\n        return response_data\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h2>S3\u30d0\u30b1\u30c3\u30c8\u306e\u4f5c\u6210<\/h2>\n<p>\u3053\u3053\u304b\u3089\u306fAWS\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u306e\u4f5c\u696d\u306e\u305f\u3081Google\u3067\u691c\u7d22\u3057\u3066AWS\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306a\u3069\u3092\u53c2\u8003\u306b\u6e96\u5099\u3057\u3066\u3044\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>Amazon S3\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089\u300c\u30d0\u30b1\u30c3\u30c8\u3092\u4f5c\u6210\u300d\u3067\u4f5c\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30bb\u30c3\u30c6\u30a3\u30f3\u30b0\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fbACL\u7121\u52b9<br \/>\n\u30fb\u30d1\u30d6\u30ea\u30c3\u30af\u30a2\u30af\u30bb\u30b9\u3092\u3059\u3079\u3066\u30d6\u30ed\u30c3\u30af<br \/>\n\u30fb\u30d0\u30b1\u30c3\u30c8\u306e\u30d0\u30fc\u30b8\u30e7\u30cb\u30f3\u30b0\u7121\u52b9<br \/>\n\u30fb\u6697\u53f7\u5316\u30bf\u30a4\u30d7\uff1aAmazonS3\u30de\u30cd\u30fc\u30b8\u30c9\u30ad\u30fc<br \/>\n\u30fb\u30d0\u30b1\u30c3\u30c8\u30ad\u30fc\u6709\u52b9<br \/>\n\u30fb\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ed\u30c3\u30af\u7121\u52b9<br \/>\n\u305d\u3057\u3066\u30b5\u30f3\u30d7\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u4e00\u3064\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304d\u307e\u3057\u305f\u3002<\/p>\n<h2>Lambda\u95a2\u6570\u306e\u4f5c\u6210<\/h2>\n<p>AWS Lambda\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089\u300c\u95a2\u6570\u306e\u4f5c\u6210\u300d\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30bb\u30c3\u30c6\u30a3\u30f3\u30b0\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fb\u4e00\u304b\u3089\u4f5c\u6210<br \/>\n\u30fb\u30e9\u30f3\u30bf\u30a4\u30e0\uff1aPython 3.11<br \/>\n\u30fb\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1ax86x64<br \/>\n\u30fb\u5b9f\u884c\u30ed\u30fc\u30eb\uff1a\u57fa\u672c\u7684\u306aLambda\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u3067\u65b0\u3057\u3044\u30ed\u30fc\u30eb\u3092\u4f5c\u6210<\/p>\n<p>\u4f5c\u6210\u3057\u305fLambda\u95a2\u6570\u306e\u30b3\u30fc\u30c9\u6b04\u306bChatGPT\u5148\u751f\u306b\u3044\u305f\u3060\u3044\u305f\u30b5\u30f3\u30d7\u30eb\u3092\u30da\u30bf\u30ea\u3057\u3066S3\u306e\u30d0\u30b1\u30c3\u30c8\u540d\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30fc\uff08\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\uff09\u3092\u5909\u66f4\u3057\u3066\u3001\u30c6\u30b9\u30c8\u3092\u884c\u3044\u307e\u3057\u305f\u3002<\/p>\n<p>\u3057\u304b\u3057AccessDenied\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059\u3002S3\u30d5\u30a1\u30a4\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3059\u3002<br \/>\nS3\u30d0\u30b1\u30c3\u30c8\u306b\u5bfe\u3059\u308b\u30a2\u30af\u30bb\u30b9\u6a29\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h2>Lambda\u95a2\u6570\u306e\u30ed\u30fc\u30eb\u306bS3\u3078\u306e\u30a2\u30af\u30bb\u30b9\u6a29\u3092\u8a2d\u5b9a\u3059\u308b<\/h2>\n<p>IAM\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u3001Lambda\u95a2\u6570\u4f5c\u6210\u3057\u305f\u6642\u306b\u4f5c\u3089\u308c\u305f\u30ed\u30fc\u30eb\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002Lambda\u5b9f\u884c\u306b\u95a2\u3059\u308b\u57fa\u672c\u7684\u306a\u30dd\u30ea\u30b7\u30fc\u304c\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"language-markup\"><code>{\r\n    \"Version\": \"2012-10-17\",\r\n    \"Statement\": [\r\n        {\r\n            \"Effect\": \"Allow\",\r\n            \"Action\": \"logs:CreateLogGroup\",\r\n            \"Resource\": \"arn:aws:logs:ap-northeast-1:xxxxxxxxxxxx:*\"\r\n        },\r\n        {\r\n            \"Effect\": \"Allow\",\r\n            \"Action\": [\r\n                \"logs:CreateLogStream\",\r\n                \"logs:PutLogEvents\"\r\n            ],\r\n            \"Resource\": [\r\n                \"arn:aws:logs:ap-northeast-1:xxxxxxxxxxxx:log-group:\/aws\/lambda\/my-lambda-function-name:*\"\r\n            ]\r\n        }\r\n    ]\r\n}<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u30dd\u30ea\u30b7\u30fc\u306e\u7de8\u96c6\u30da\u30fc\u30b8\u3067\u65b0\u3057\u304f\u30dd\u30ea\u30b7\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u5148\u307b\u3069\u4f5c\u6210\u3057\u305fS3\u30d0\u30b1\u30c3\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9\uff08get, post, put\uff09\u3092\u8a31\u53ef\u3059\u308b\u30dd\u30ea\u30b7\u30fc\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089\u30dd\u30ea\u30b7\u30fc\u30a8\u30c7\u30a3\u30bf\u306e\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3067\u6a29\u9650\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3082\u3044\u3044\u3057\u3001\u30dd\u30ea\u30b7\u30fc\u7de8\u96c6\u753b\u9762\u306bjson\u3092\u8cbc\u308a\u4ed8\u3051\u3067\u3082\u3088\u3044\u3067\u3059\u3002\u6a29\u9650\u8a2d\u5b9a\u306fS3\u5074\u306e\u30dd\u30ea\u30b7\u30fc\u306b\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\uff08\u66f8\u304d\u65b9\u306f\u9055\u3044\u307e\u3059\uff09\u3002<\/p>\n<pre class=\"language-markup\"><code>{\r\n    \"Version\": \"2012-10-17\",\r\n    \"Statement\": [\r\n        {\r\n            \"Sid\": \"VisualEditor0\",\r\n            \"Effect\": \"Allow\",\r\n            \"Action\": [\r\n                \"s3:PutObject\",\r\n                \"s3:GetObject\",\r\n                \"s3:DeleteObject\"\r\n            ],\r\n            \"Resource\": \"arn:aws:s3:::my-s3-bucket\/*\"\r\n        }\r\n    ]\r\n}<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u4e0a\u8a18\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u3001\u5148\u307b\u3069\u306e\u30ed\u30fc\u30eb\u306e\u7de8\u96c6\u753b\u9762\u3067\u300c\u8a31\u53ef\u3092\u8ffd\u52a0\u300d\u2192\u300c\u30dd\u30ea\u30b7\u30fc\u3092\u30a2\u30bf\u30c3\u30c1\u300d\u3067\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u72b6\u614b\u3067\u518d\u5ea6Lambda\u95a2\u6570\u306e\u30c6\u30b9\u30c8\u3092\u884c\u3046\u3068\u7121\u4e8b\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3057\u3066\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3057\u305f\u3002<\/p>\n<h2>API Gateway\u306e\u4f5c\u6210<\/h2>\n<p>API Gateway\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089API\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30bb\u30c3\u30c6\u30a3\u30f3\u30b0\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fbAPI\u30bf\u30a4\u30d7\uff1aREST API<br \/>\n\u30fbAPI\u306e\u8a73\u7d30\uff1a\u65b0\u3057\u3044API<br \/>\n\u30fbAPI\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u30bf\u30a4\u30d7\uff1a\u30ea\u30fc\u30b8\u30e7\u30f3<\/p>\n<p>\u4f5c\u6210\u3057\u305fAPI\u306e\u7ba1\u7406\u753b\u9762\u3067\u3001\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\n\u30ea\u30bd\u30fc\u30b9\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u3066\u3001\u3053\u308c\u304cURL\u3068\u3044\u3046\u304b\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3068\u306a\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-32194\" src=\"https:\/\/gri.jp\/media\/wp\/wp-content\/uploads\/2023\/11\/aws-gtp-4.jpg\" alt=\"\" width=\"1121\" height=\"351\" \/>\n<p>\u300ctest\/{id}\u300d\u3068\u3044\u3046\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u306e\uff5b\uff5d\u306f\u30d1\u30b9\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\uff5bid\uff5d\u30ea\u30bd\u30fc\u30b9\u306b\u5bfe\u3057\u3066GET\u30e1\u30bd\u30c3\u30c9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30bb\u30c3\u30c6\u30a3\u30f3\u30b0\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fb\u7d71\u5408\u30bf\u30a4\u30d7\uff1aLambda\u95a2\u6570<br \/>\n\u30fb<strong>Lambda\u30d7\u30ed\u30ad\u30b7\u7d71\u5408<\/strong>\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff01\uff08\u5927\u4e8b\uff09<br \/>\n\u30fbLambda\u95a2\u6570\uff1a\u4f5c\u6210\u3057\u305fLambda\u95a2\u6570\u306eARN\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p>\u300cLambda\u30d7\u30ed\u30ad\u30b7\u7d71\u5408\u300d\u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u3001Lambda\u95a2\u6570\u306e\u4e2d\u3067\u4e0a\u8a18\u306e\uff5bid\uff5d\u3092\u30d1\u30b9\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u3057\u3066\u7c21\u5358\u306b\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Lambda\u95a2\u6570\u5185\u3067\u306f<strong>event[&#8216;pathParameters&#8217;][&#8216;id&#8217;]<\/strong>\u306e\u4e2d\u306b\u683c\u7d0d\u3055\u308c\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>API Gateway\u306e\u30e1\u30bd\u30c3\u30c9\u306e\u300c\u30c6\u30b9\u30c8\u300d\u30bf\u30d6\u3067id\u3092\u6307\u5b9a\u3057\u3066\u30c6\u30b9\u30c8\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002<\/p>\n<p>\u30c6\u30b9\u30c8\u3057\u3066\u307f\u308b\u3068\u7121\u4e8b\u306b\u6307\u5b9a\u3057\u305fid\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306ejson\u304cS3\u304b\u3089\u53d6\u5f97\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u72b6\u614b\u3067\u300cAPI\u3092\u30c7\u30d7\u30ed\u30a4\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u3001\u30b9\u30c6\u30fc\u30b8\u3092\u4f5c\u6210\uff08prod\u3068\u304bstg\u3068\u304b\uff09\u3057\u3066\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3068\u3001API\u306eURL\u304c\u767a\u884c\u3055\u308c\u3066API\u304c\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>ChatGPT\u5148\u751f\u306f\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u4f8b\u793a\u3057\u3066\u304f\u308c\u306a\u3044\u306e\u3067\u3001\u7ba1\u7406\u753b\u9762\u64cd\u4f5c\u306a\u3069\u304c\u7d61\u3080\u4e8b\u306e\u30ec\u30af\u30c1\u30e3\u30fc\u306b\u306f\u4e0d\u5411\u304d\u304b\u306a\u3068\u601d\u3044\u307e\u3057\u305f\u3002<\/p>\n<p>\u3057\u304b\u3057\u5927\u307e\u304b\u306a\u6d41\u308c\u3092\u77e5\u308a\u305f\u3044\u3001\u8abf\u3079\u308b\u305f\u3081\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3059\u3089\u308f\u304b\u3089\u306a\u3044\u3088\u3046\u306a\u3068\u304d\u306b\u306f\u8272\u3005\u805e\u3044\u3066\u307f\u308b\u306e\u304c\u826f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u8a2d\u5b9a\u3067\u8a70\u307e\u3063\u305f\u6642\u306a\u3069\u306f\u89e3\u6c7a\u306b\u3064\u306a\u304c\u308b\u30d2\u30f3\u30c8\u304c\u5f97\u3089\u308c\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ChatGPT\u5148\u751f\u306b\u6559\u3048\u3066\u3082\u3089\u3046\u7b2c\u4e8c\u5f3e\u306fLambda\u3068APIGateway\u3067\u3059\u3002 Lambda\u95a2\u6570\u306fPython\u3092\u4f7f\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u3084\u308a\u305f\u3044\u3053\u3068 API\u306e\u30d1\u30b9\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3067\u6307\u5b9a\u3057\u305fID\u3092\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u6301\u3064\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4<\/p>\n","protected":false},"author":4,"featured_media":27115,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[144,100,130],"tags":[],"class_list":["post-32173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-technical","category-try"],"acf":[],"meta_field":{"_edit_lock":["1701071225:44"],"_edit_last":["44"],"hidden_toppage":["0"],"_hidden_toppage":["field_61933136630d2"],"note_url":[""],"_note_url":["field_61243c8278b90"],"_pv_count":["a:24:{i:12;i:87;i:4;i:27;i:6;i:38;i:16;i:206;i:17;i:168;i:18;i:134;i:19;i:88;i:21;i:66;i:11;i:145;i:5;i:25;i:10;i:139;i:14;i:208;i:1;i:38;i:9;i:152;i:15;i:219;i:8;i:63;i:20;i:73;i:22;i:47;i:0;i:34;i:2;i:27;i:23;i:57;i:13;i:176;i:3;i:14;i:7;i:30;}"],"pv_count":["2261"],"_thumbnail_id":["27115"]},"_links":{"self":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/32173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/comments?post=32173"}],"version-history":[{"count":13,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/32173\/revisions"}],"predecessor-version":[{"id":32353,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/32173\/revisions\/32353"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/media\/27115"}],"wp:attachment":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/media?parent=32173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/categories?post=32173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/tags?post=32173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}