Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh OpenAPI berikut menunjukkan cara mengakses file biner AWS Lambda melalui API Gateway API. API ini mengekspos GET /lambda?key={file-name}
dan PUT /lambda?key={file-name}
metode untuk mengunduh dan mengunggah file gambar tertentu. GET
Metode mengembalikan file gambar sebagai string yang dikodekan base64 sebagai bagian dari output JSON, mengikuti template pemetaan yang disediakan, dalam respons 200 OK. PUT
Metode ini mengambil gumpalan biner mentah sebagai input dan mengembalikan respons 200 OK dengan muatan kosong.
Anda membuat fungsi Lambda yang dipanggil API Anda, dan itu harus mengembalikan string yang dikodekan base64 dengan header. Content-Type
application/json
Topik
File OpenAPI dari API sampel untuk mengakses gambar di Lambda
File OpenAPI berikut menunjukkan contoh API yang menggambarkan mengunduh file gambar dari Lambda dan mengunggah file gambar ke Lambda.
{ "openapi": "3.0.0", "info": { "version": "2016-10-21T17:26:28Z", "title": "ApiName" }, "paths": { "/lambda": { "get": { "parameters": [ { "name": "key", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "200 response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Empty" } } } }, "500": { "description": "500 response" } }, "x-amazon-apigateway-integration": { "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:image/invocations", "type": "AWS", "credentials": "arn:aws:iam::123456789012:role/Lambda", "httpMethod": "POST", "requestTemplates": { "application/json": "{\n \"imageKey\": \"$input.params('key')\"\n}" }, "responses": { "default": { "statusCode": "500" }, "2\\d{2}": { "statusCode": "200", "responseTemplates": { "application/json": "{\n \"image\": \"$input.body\"\n}" } } } } }, "put": { "parameters": [ { "name": "key", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "200 response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Empty" } }, "application/octet-stream": { "schema": { "$ref": "#/components/schemas/Empty" } } } }, "500": { "description": "500 response" } }, "x-amazon-apigateway-integration": { "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:image/invocations", "type": "AWS", "credentials": "arn:aws:iam::123456789012:role/Lambda", "httpMethod": "POST", "contentHandling": "CONVERT_TO_TEXT", "requestTemplates": { "application/json": "{\n \"imageKey\": \"$input.params('key')\", \"image\": \"$input.body\"\n}" }, "responses": { "default": { "statusCode": "500" }, "2\\d{2}": { "statusCode": "200" } } } } } }, "x-amazon-apigateway-binary-media-types": [ "application/octet-stream", "image/jpeg" ], "servers": [ { "url": "https://abcdefghi.execute-api.us-east-1.amazonaws.com/{basePath}", "variables": { "basePath": { "default": "/v1" } } } ], "components": { "schemas": { "Empty": { "type": "object", "title": "Empty Schema" } } } }
Unduh gambar dari Lambda
Untuk mengunduh file gambar (image.jpg
) sebagai gumpalan biner dari Lambda:
GET /v1/lambda?key=image.jpg HTTP/1.1 Host: abcdefghi.execute-api.us-east-1.amazonaws.com Content-Type: application/json Accept: application/octet-stream
Respons yang berhasil terlihat seperti berikut:
200 OK HTTP/1.1 [raw bytes]
Untuk mengunduh file gambar (image.jpg
) sebagai string yang dikodekan base64 (diformat sebagai properti JSON) dari Lambda:
GET /v1/lambda?key=image.jpg HTTP/1.1 Host: abcdefghi.execute-api.us-east-1.amazonaws.com Content-Type: application/json Accept: application/json
Respons yang berhasil terlihat seperti berikut:
200 OK HTTP/1.1 { "image": "W3JhdyBieXRlc10=" }
Unggah gambar ke Lambda
Untuk mengunggah file gambar (image.jpg
) sebagai gumpalan biner ke Lambda:
PUT /v1/lambda?key=image.jpg HTTP/1.1 Host: abcdefghi.execute-api.us-east-1.amazonaws.com Content-Type: application/octet-stream Accept: application/json [raw bytes]
Respons yang berhasil terlihat seperti berikut:
200 OK
Untuk mengunggah file gambar (image.jpg
) sebagai string yang dikodekan base64 ke Lambda:
PUT /v1/lambda?key=image.jpg HTTP/1.1 Host: abcdefghi.execute-api.us-east-1.amazonaws.com Content-Type: application/json Accept: application/json W3JhdyBieXRlc10=
Respons yang berhasil terlihat seperti berikut:
200 OK