ΠΠ΅Π·ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (Π°Π½Π³Π». serverless computing) β ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΡΡΠ»ΡΠ³, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±Π»Π°ΠΊΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Β«ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°Β» (FAAS
), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° (Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ) ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΠΈΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΡΠ»ΡΠ³ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π½Π°ΠΌ ΠΆΠΈΠ·Π½Ρ, ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Ρ.Π΄., Π² ΡΠ΅Π»ΠΎΠΌ Π³ΠΎΠ²ΠΎΡΡ ΠΎ Ρ Π°ΡΠ΄Π²Π°ΡΠ½ΡΡ Π²Π΅ΡΠ°Ρ .
ΠΠ²ΡΡΠΈΡ ΠΊΡΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π° Π½Π΅ Π·Π°ΠΌΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈ ΠΏΡΠΎΡΠΈΠΌΠΈ Π΄Π΅Π²ΠΎΠΏΡΠΎΠ²ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΠΊΠ°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΡΠ΅ΡΠ°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ time to market - ΠΈ ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ. Π§ΡΠΎ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° Serverless
ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ°Π³ Π² ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Π²Π΅Π±Π°? Π Π΄Π° ΠΈ Π½Π΅Ρ. ΠΠ° ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π½ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ°Π½Π°ΡΠ΅Π΅ ΠΈΠ»ΠΈ Π²ΠΎΠ»ΡΠ΅Π±Π½ΠΎΠΌΡ ΡΠ²Π΅ΠΉΡΠ°ΡΡΠΊΠΎΠΌΡ Π½ΠΎΠΆΡ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² ΡΡΠΊΠ°Ρ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. FAAS Π½Π΅ ΠΏΡΠΈΠ·Π²Π°Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. ΠΡΠ±Π΅Ρ-Π±ΡΠ±Π΅Ρ (Kubernetes) ΠΆΠΈΠ²Π΅Π΅ Π²ΡΠ΅Ρ
ΠΆΠΈΠ²ΡΡ
, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠΈΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅Π½ΡΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ FAAS ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅, ΠΈ ΡΡΠΎ ΠΊΡΡΡΠΎ Π²Π΅Π΄Ρ Ρ Π½Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π·Π°Π΄Π°Ρ.
AWS Lambda β ΡΡΠΎ Π±Π΅Π·ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Lambda ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ 200 ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΠ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π° (SaaS), ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ²
- ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
- ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²Π΅ΡΠ΅ΠΉ
- ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²
- ...
ΠΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ ΡΡΠΎ AWS Lambda ΡΡΠΎ FAAS (function as a service), ΡΠΎΠ΅ΡΡΡ ΠΌΡ Π½Π΅ ΡΡΠ°ΡΠΈΠΌ ΡΡΠΈΠ»ΠΈΡ Π½Π° ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎ ΡΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Ρ ΠΊΠΎΠ΄ (Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ), ΠΏΠ»Π°ΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈ Π²ΡΠ΅ ΡΡΠΎ ΡΡΠ°ΡΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
- ΠΠ΅Π½ΡΠ³ΠΈ. ΠΡ ΠΏΠ»Π°ΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
- Π‘ΠΊΠΎΡΠΎΡΡΡ. Π‘Π°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ Π»ΡΠΌΠ±Π΄Π° ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ.
- Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ. ΠΡΠΌΠ±Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ AWS.
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π³ΠΈΠΎΠ½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΡ 500 Π΄ΠΎ 3000 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². Π ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΡΡΠΎΡ Π»ΠΈΠΌΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ, Π½Π°ΠΏΠΈΡΠ°Π² Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ.
ΠΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Ρ:
Resource | Quota |
---|---|
Function memory allocation | 128 MB to 10,240 MB |
Function timeout | 900 seconds (15 minutes) |
Function environment variables | 4 KB, for all environment variables associated with the function |
Function resource-based policy | 20 KB |
Function layers | five layers |
Function burst concurrency | 500 - 3000 (varies per Region) |
Invocation payload (request and response) | 6 MB (synchronous), 256 KB (asynchronous) |
Deployment package (.zip file archive) size | 50 MB (zipped, for direct upload), 250 MB (unzipped), 3 MB (console editor) |
Container image code package size | 10 GB |
ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΡΠ°Π·Π΄ΡΠΌΡΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠ΄ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ Π½Π΅ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π»ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π·Π°ΡΡΠΎΠ½Ρ ΡΡΡ ΡΠ΅ΠΌΡ.
ΠΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ:
def handler(event, context):
print("First lambda")
return "Hello world"
ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ event
ΠΈ context
. Event
- ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π² Π½Π°ΡΡ Π»ΡΠΌΠ±Π΄Ρ, ΠΏΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ json, ΠΎΠ½ Π² ΡΠ΅Π»ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ event
Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, Π²ΠΎΡ ΡΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ event
Ρ S3
:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "1970-01-01T00:00:00.000Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"responseElements": {
"x-amz-request-id": "EXAMPLE123456789",
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "testConfigRule",
"bucket": {
"name": "example-bucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
},
"arn": "arn:aws:s3:::example-bucket"
},
"object": {
"key": "test/key",
"size": 1024,
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901"
}
}
}
]
}
Context
- ΡΡΠΎ json ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ·ΠΎΠ²Π΅, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΈ ΡΠ»ΡΠΆΠ±Ρ, Π²ΡΠ·Π²Π°Π²ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
-
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΈΠΏ Π²ΡΠ·ΠΎΠ²Π° RequestResponse, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ², AWS Lambda Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Python ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ½ΡΠΎΠ»Ρ AWS Lambda ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΏ Π²ΡΠ·ΠΎΠ²Π° RequestResponse, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
-
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ json.dumps, ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
-
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ None, ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π΅ΡΠ²Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Python Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° return, ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ null.
-
ΠΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ (Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π°Π»Π΅Π΅) ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ.
ΠΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS, Lambda ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ AWS ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠ°ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ AWS Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠ° β ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΡΠ° ΠΈ ΡΡΠΎΠ²Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΠ± AWS Lambda, ΡΠΎ AWS ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ Lambda (Identity and Access Management, IAM), Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Lambda Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΠΌ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π»ΡΠΌΠ±Π΄Π΅ ΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π΅ΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ, Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΈΠ»Ρ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ², Π½ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠΈΠΉΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ β Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ microVM. ΠΠ°ΠΆΠ΄Π°Ρ microVM Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ AWS ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄Π°ΠΌΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΡΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. MicroVM ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Lambda Worker, ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π»Π°Π΄Π΅Π΅Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ AWS. ΠΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ microVM ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ AWS.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΡΠ»ΠΎΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΡΠΈΡ Π²Π°Ρ ΠΊΠΎΠ΄ (ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΈΡΠΎΠ½Π°). Π’Π°ΠΊΠΆΠ΅ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎ ΠΏΡΡΠΈ /tmp ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 512 MB Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ΅Ρ ΠΈ Ρ.Π΄. ΠΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ (ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ) ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ.
Π’Π°ΠΊΠΆΠ΅ Ρ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΡ.
Lambda Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π»ΡΠ±ΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Lambda Ρ ΠΏΠΎΠΌΠΎΡΡΡ API ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ Lambda Ρ ΠΏΠΎΠΌΠΎΡΡΡ Extensions API. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π²ΡΠΈΡΡ Π½Π° Π»ΠΎΠ³ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Logs API.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ Lambda, Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Lambda ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ΅ΡΡΡΡΡ, ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ:
-
Init: Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Lambda ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ΅Ρ ΡΠ»ΠΎΠ΅Π², ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΊΠΎΠ΄ Π²Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°). Π€Π°Π·Π° Init ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ. Π€Π°Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°ΠΏΠ°:
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
,ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΈΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
. ΠΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°ΠΏΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Ρ ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ. -
Invoke: Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Lambda Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Lambda Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
-
Shutdown: ΡΡΠ° ΡΠ°Π·Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Lambda Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (15 ΠΌΠΈΠ½ΡΡ). ΠΠ° ΡΡΠ°ΠΏΠ΅ Shutdown Lambda ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΈΠΌ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΠ΅Π΄Ρ. Lambda ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Shutdown ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΡΠ΅Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ°Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Lambda ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠ΅ΠΌ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌ. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π·Π°ΠΏΡΠΎΡ Next API. Lambda Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ ΠΈ Π½Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎ Lambda ΡΠ°Π·ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡ ΡΡΠ΅Π΄Ρ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ ΡΡΠ°ΡΠΈΡΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π·Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Lambda Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ:
- ΠΠ°ΠΏΡΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ (
Extension init
) - Π‘ΠΎΠ±ΡΠ°ΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (
Runtime init
) - ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ (
Function init
)
Π€Π°Π·Π° Init Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π·Π°ΠΏΡΠΎΡ Next API. Π€Π°Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° 10 ΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 10 ΡΠ΅ΠΊΡΠ½Π΄, Lambda ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠ°Π·Ρ Init Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Lambda ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ Next API, Lambda ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Invoke ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΉΠΌ-Π°ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΉ ΡΠ°Π·Ρ Invoke. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° 360 ΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 360 ΡΠ΅ΠΊΡΠ½Π΄. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΡΠ°Π·Ρ ΠΏΠΎΡΡ-Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΌΠΌΡ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠ·ΠΎΠ²Π° (Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ + Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ) ΠΈ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π€Π°Π·Π° Π²ΡΠ·ΠΎΠ²Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π·Π°ΠΏΡΠΎΡ Next API.
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Lambda Π΄Π°Π΅Ρ ΡΠ±ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ·ΠΎΠ²Π°, Lambda ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π‘Π±ΡΠΎΡ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠΈΠ΅ Shutdown. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Lambda Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ Lambda ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Shutdown Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΈΡΠΈΠ½Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Invoke ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Lambda ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΠΎΠ³Π΄Π° Lambda ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠ½Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Shutdown ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ. Π‘ΠΎΠ±ΡΡΠΈΠ΅ Shutdown β ΡΡΠΎ ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ Next API.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: Π²ΡΡ ΡΠ°Π·Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° 2 ΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ, Lambda Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° (SIGKILL).
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Lambda Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ ΡΡΡΠΈ, Lambda Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π°, Lambda ΡΠ°Π·ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ:
-
ΠΠ±ΡΠ΅ΠΊΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΡΠ°ΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Lambda ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² Π²Π°Ρ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅.
-
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡ 512 ΠΠ Π΄ΠΎ 10 240 ΠΠ Ρ ΡΠ°Π³ΠΎΠΌ 1 ΠΠ. Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /tmp. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΎΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½Π°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Π² ΠΊΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ²ΠΎΡΡ Lambda.
-
Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½Ρ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Lambda ΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ, Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ Lambda ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ΅Π΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ Π΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ Lambda Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π΄ΠΈΠΊΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Lambda Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ±ΠΎΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π»ΡΠΌΠ±Π΄Ρ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Ρ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ cold start
, Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡ
Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎ warm start
.
ΠΡΡΡ ΡΠ°ΡΡΡ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π»ΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ AWS, Π½ΠΎ Π΅ΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΡΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²Π°Ρ Π»ΡΠΌΠ±Π΄Ρ.
import boto3
# ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ SQS Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ
# Π·Π½Π°ΡΠΈΡ ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΡΠ°Π·Π΅ Init
# ΠΈ Π½Π΅ ΠΈΡΡΠ΅Π·Π½Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ
client = boto3.client('sqs')
def handler(event, context)
# some code
# Π² ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ Π½Π΅ ΡΡΠ°ΡΠΈΠΌ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ sqs
response = client.send_message("some payload here")
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠ°ΡΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ.
Lambda Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Lambda ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠΎΠΌ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Lambda ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Lambda ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Lambda foo1 ΠΈ foo2 ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ foo1 Π΅Π΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ, Π½ΠΎ foo2 Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π΄ΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ»Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ ΠΈ ΡΠ»ΡΠΆΠ±ΠΎΠΉ Lambda ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Lambda ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ reserved concurrency
, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, S3 bucket Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Lambda, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π½Π΅Π³ΠΎ:
ΠΡΠ»ΠΈ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Lambda ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°Π²Π½ΠΎΠΉ 1 ΠΈ 6 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² bucket ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ provisioned concurrency
Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠΌΠ±Π΄ Π² ΡΠ°Π·ΠΎΠ³ΡΠ΅ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΠ² Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈ ΠΈΡ
Π²ΡΠ·ΠΎΠ²Π΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ°Π±ΠΎΡΠ°Π»Π° Π΅Π΅ ΠΊΡΠΎ-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ, Π² aws Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ Π»ΡΠΌΠ±Π΄ΠΎΠΉ, ΠΈ ΠΌΠΎΠ³ΡΡ Π΅Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π»ΡΠΌΠ±Π΄Ρ Π½Π° ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Push
, Pull
, Event
.
Push ΠΈΠ»ΠΈ Synchronous ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Ρ, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π»ΡΠΌΠ±Π΄Ρ ΠΈ ΠΆΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ ΡΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ API Gateway, ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ Π½Π° ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½ΡΠΆΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°, ΠΈ API Gateway ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠΊΠ° Π»ΡΠΌΠ±Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ, Π²Π΅ΡΠ½Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΈ ΠΎΡΠ²Π΅Ρ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΈΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π° ΡΠΏΠ°Π΄Π΅Ρ - ΡΠΎΠ³Π΄Π° API Gateway Π²Π΅ΡΠ½Π΅Ρ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ 502.
ΠΡΠΈ Event ΠΈΠ»ΠΈ Asynchronous ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠ΅ΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ Π²ΡΠ΅. ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎ S3 Bucket. ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ S3 ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ, Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΡΡΠ°ΡΡ Π΅Π³ΠΎ Ρ S3, ΡΡΠΎ-ΡΠΎ Ρ Π½ΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ, Π½ΠΎ ΡΡΠΎ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΠ²Π΅Π½ΡΠ° Ρ S3, S3 ΡΠ²ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π² ΡΠΎΠ±ΡΡΠΈΠ΅ (event). ΠΠ° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΈΠ²Π΅Π½Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠΎ Lambda ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π½ΠΎΠ²ΠΎ Π΅ΡΠ΅ Π΄Π²Π° ΡΠ°Π·Π°, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ²Π΅Π½Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π» ΡΡΠ½ΠΊΡΠΈΡ Π² DeadLetterQueue
Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π°.
Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Ρ Destination
, Ρ.Π΅. ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ Pull ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π»ΡΠΌΠ±Π΄Ρ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SQS. SQS Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ²Π΅Π½ΡΠ° ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅ΠΌ Π΅ΡΡΡ Π»ΠΈ Ρ Π½Π°Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Lambda Service. ΠΠΎ ΡΡΡΠΈ Lambda Service Ρ Π½Π΅ΠΊΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡΡ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ SQS ΡΡΠΎ Π±Ρ ΡΠ·Π½Π°ΡΡ Π½Π΅Ρ Π»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΠΌ Π΅ΡΡΡ, ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΆΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°ΡΡ Π»ΡΠΌΠ±Π΄Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ Lambda ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ execution role
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΠΉ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ AWS. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΆΡΡΠ½Π°Π»Π°ΠΌ Amazon CloudWatch Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π»ΠΎΠ³ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ AWS X-Ray Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AWS SDK, Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π΅ΠΉ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ execution role
. Lambda ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π₯ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠ°Π² Π΄Π»Ρ Π²Π°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² SQS ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ Π΅ΠΉ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ SQS, ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π² DynamoDB.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ resource-based policies
, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ AWS ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡΡΡ Lambda. Π Π΅ΡΡΡΡΡ Lambda Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΈ Π²Π΅ΡΡΠΈΠΈ ΡΠ»ΠΎΠ΅Π². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ΅ΡΡΡΡΡ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π»ΡΠ±ΡΠΌ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²ΠΈΡ AWS, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Amazon S3, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Lambda, resource-based policies
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΠΉ Π΄ΠΎΡΡΡΠΏ.
Concurrency (ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ) β ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Lambda ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ: Reserved concurrency (Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ) ΠΈ provisioned concurrency (ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ).
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- Concurrency limit - ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°.
- Burst limit - ΡΡΠΎ Π»ΠΈΠΌΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠ»Π΅ΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΡΠΌΠ±Π΄, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠΌΠ±Π΄ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ burst limit
, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ 500 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΡ ΠΌΠΈΠ½ΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ concurrency limit
. ΠΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΊΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ 429).
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ°Ρ Π²ΡΠΏΠ»Π΅ΡΠΊ ΡΡΠ°ΡΠΈΠΊΠ°. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΠΎΠ³Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π΅Π» ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡΡΡ, ΠΈ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ.
Lambda ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΡΡΠΎ Π»ΡΠΌΠ±Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄ (Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ) Π½Π° Π°ΠΊΠΊΠ°ΡΠ½Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π³ΠΈΠΎΠ½Π° ΡΡΠ° ΡΠΈΡΡΠ° Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ 500 Π΄ΠΎ 3000 ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π΅Π»Π°. ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π²ΡΠ΅ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅, Ρ.Π΅. Π½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΡΠΌΠ±Π΄ ΡΠ΅ΠΉΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π½Ρ ΠΈΡ
ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π½Π΅ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°. ΠΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ-Π±Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π»ΡΠΌΠ±Π΄Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ reserved concurrency
- ΠΏΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠ΅Π΄Π΅Π» ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΡΠΌΠ±Π΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ ΡΡΠΎ reserved concurrency
ΠΏΠΎ ΡΡΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ Π»ΠΈΠΌΠΈΡΠ° Π½Π° Π°ΠΊΠΊΠ°ΡΠ½Ρ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠΈΡΠ»ΠΎ = Π»ΠΈΠΌΠΈΡ Π½Π° Π°ΠΊΠΊΠ°ΡΠ½Ρ - ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°
, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ± Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠΌΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ
Π»ΡΠΌΠ±Π΄.
ΠΠΎΠΏΡΡΡΠΈΠΌ Π½Π°Ρ Π»ΠΈΠΌΠΈΡ Π½Π° Π°ΠΊΠΊΠ°ΡΠ½Ρ ΡΡΠΎ 10 ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ 3 ΡΡΠ½ΠΊΡΠΈΠΈ dev
, prod
ΠΈ other
. ΠΡ ΡΠΊΠ°Π·Π°Π»ΠΈ Π΄Π»Ρ dev
ΡΡΠ½ΠΊΡΠΈΠΈ reserved concurrency
= 4, Π΄Π»Ρ prod
ΡΠΎΠΆΠ΅ = 4. Π’ΠΎΠ³Π΄Π° Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ 4 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ dev
ΠΈ Π΄ΠΎ 4 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ prod
, Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 4 Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎ 5 ΡΠΎΠ·Π΄Π°Π½Π° ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎ reserved concurrency
ΠΎΡΠΊΡΡΡΠ²Π°Π΅Ρ ΠΊΡΡΠΎΠΊ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ»Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΡ other
ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΡΠΌΠΌΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 2 ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ dev
ΠΈ prod
Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ, Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ, Π²Π»ΠΈΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° (cold start
). ΠΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π΄Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΈΠ»ΡΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. Π§ΡΠΎΠ±Ρ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ³Π»Π° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ provisioned concurrency
ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ°Ρ Π²ΡΠΏΠ»Π΅ΡΠΊ ΡΡΠ°ΡΠΈΠΊΠ°.
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π΅ΡΠ΅ Π΄Π°Π»ΡΡΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ autoscaling Π³ΡΡΠΏΠΏΡ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΎΠ³ΡΠ΅ΡΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π·ΠΎΠ³ΡΠ΅Π²Π° Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ CloudWatch Event ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Ρ Π΄Π»Ρ ΠΈΡ ΡΠ°Π·ΠΎΠ³ΡΠ΅Π²Π°. ΠΠΎΠΆΠ½ΠΎ Π³Π»ΡΠ½ΡΡΡ ΡΡΡ ΠΈ ΡΡΡ
Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² Π°ΡΡ
ΠΈΠ² ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠΎ Π½Π° S3. ΠΠΎ ΠΏΠΎΡΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠΎΠ³Π΄Π° ΡΡΠΎ-Π±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ½Π΅ΡΡΠΈ ΠΎΠ±ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² Lambda Layer
. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΡΠΌΠ±Π΄ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ»ΠΎΠΉ. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π°ΡΡ
ΠΈΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π°ΡΡ
ΠΈΠ² ΡΠΎ ΡΠ»ΠΎΠ΅ΠΌ, Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ 250 MB.
ΠΠ· ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ helper ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ handler ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΎΠΉ, Π»ΠΎΠ³ΠΈΠΊΡ Π²ΡΠ½ΠΎΡΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π° helper ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ½Π΅ΡΡΠΈ Π² Layer
ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ Layer
ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π»ΡΠΌΠ±Π΄Π°ΠΌ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ½Ρ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
# initialization that will be executed in Init phase___________>
import boto3
client = pre_handler_db_connection()
#______________________________________________________________<
# Lambda handler function______________________________________>
def handler(event, context):
do_logic()
return {
}
#______________________________________________________________<
# some business logic__________________________________________>
def do_logic():
secret = get_secret()
# do something
#______________________________________________________________<
# some utility functions shared across different lambdas_______>
def get_secret():
# get secret from secret store
pass
def pre_handler_db_connection():
# connecting to db
pass
#______________________________________________________________<
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π±Π΅ΡΠ°-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ. Lambda ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π½Π΅ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Lambda Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ Π² Π½Π΅ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² $LATEST, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ.
ΠΠ΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
-
ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
-
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lambda, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ.
-
ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
-
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΡΡΡΠ° Amazon (ARN) Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ²ΠΎΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ARN ΠΈΠ»ΠΈ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ARN.
-
Qualified ARN ARN β ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ARN Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π²Π΅ΡΡΠΈΠΈ 42 ΡΡΠ½ΠΊΡΠΈΠΈ helloworld
arn:aws:Π»ΡΠΌΠ±Π΄Π°:aws-ΡΠ΅Π³ΠΈΠΎΠ½:acct-id:ΡΡΠ½ΠΊΡΠΈΡ:helloworld:42
-
Unqualified ARN β ΡΡΠ½ΠΊΡΠΈΡ ARN Π±Π΅Π· ΡΡΡΡΠΈΠΊΡΠ° Π²Π΅ΡΡΠΈΠΈ.
arn:aws:Π»ΡΠΌΠ±Π΄Π°:aws-ΡΠ΅Π³ΠΈΠΎΠ½:acct-id:ΡΡΠ½ΠΊΡΠΈΡ:helloworld
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ARN Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ API. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ARN Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² (Alias
) Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Lambda ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Amazon Resource Name (ARN).
Π ΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎ β ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅
-
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Ρ Π½Π°Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡΠΈΡ
$LATEST
. ΠΠ½ Π²ΡΠ΅Π³Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ - ΠΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΠΈΠ°Ρ
Dev
. Π’ΡΡ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΡΠ΄Π° ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² β ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ 1, ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΊ$LATEST
, ΠΈΠ»ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π°Π»ΠΈΠ°ΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌ ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ$LATEST
, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡDev
Π°Π»ΠΈΠ°Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ΅Π³Π΄Π° Π½Π° Π΄Π΅Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ. Π Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΡΠΈΠ³Π³Π΅ΡΠ΅ Π°Π»ΠΈΠ°Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Ρ Π°Π»ΠΈΠ°ΡΠ° ΡΡΡΠ»ΠΊΡ Π½Π° Π²Π΅ΡΡΠΈΡ, Π½Π΅ ΡΡΠΎΠ³Π°Ρ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - ΠΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΠΈΠ°Ρ
Stage
ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ Π΅Π³ΠΎ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ - ΠΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΠΈΠ°Ρ
Prod
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π΄Π»ΡStage
Π ΡΠ°ΠΊ, ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅, ΠΏΠΎ ΡΡΡΠΈ 3 Π°Π»ΠΈΠ°ΡΠ° ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ, Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΠΎ Π½ΠΈΡΠ΅Π³ΠΎ, Π²ΡΠ΅ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Ρ Π½Π°Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡΠΈΡ
-
ΠΡΠΎΡΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ(ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Β«Hello worldΒ»). Π’ΡΡ Ρ
ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ
$LATEST
Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ°Π·Ρ Π½Π° Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ. Π ΡΠ°ΠΊ ΠΊΠ°ΠΊ Β«DevΒ» ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ$LATEST
, ΡΠΎ ΠΎΠ½ ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ. - ΠΠ°Π»Π΅Π΅, ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΡΠΎΠ±Ρ Π½Π°Ρ
Stage
ΡΠΌΠΎΡΡΠ΅Π» Π½Π° Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π²Π΅ΡΡΠΈΠΈ 1. Π’ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡStage
. - Π Π°Π΄ΡΠ΅ΠΌΡΡ. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎ β ΡΡΠΎ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π²ΡΠΎΡΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅. Π’ΠΎ Π΅ΡΡΡ, Π½Π°Ρ
Prod
ΡΠΌΠΎΡΡΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, Π°Dev
ΠΈStage
Π½Π° Π²ΡΠΎΡΡΡ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ(ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Β«Hello worldΒ»). Π’ΡΡ Ρ
ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ
-
Π’ΡΠ΅ΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅ΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π½Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΡ ΡΡΡΠΎΠΊ Π² Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Ρ. Π
Dev
Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π° Π½Π΅Π΅.
Region - ΡΡΠΎ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ½ΡΡΡΠΈ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠ² Π΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Availability Zone
- ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΡ. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
AZ
ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ Π²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
VPC - ΡΡΠΎ Virtual Private Cloud, Π½Π΅ΠΊΠ°Ρ ΡΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΈΡΠ° ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π° ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ. VPC ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ Subnets
, Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡΡΡ, ΠΏΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π³ΡΡΠΏΠΏΠ° ip Π°Π΄ΡΠ΅ΡΠΎΠ² Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Route Table
. Route Table
ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠ°ΠΊ ΠΈ ΠΊΡΠ΄Π° Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ°ΡΠΈΠΊ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ ΠΈΠΌ Π½ΡΠΆΠ΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· gateway, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Internet Gateway
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊΡ Π² ΠΎΠ±ΠΎΠΈΡ
Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
, ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΡΠ΅ΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΡΠ°ΡΡΡΡ Π½Π° ΡΡΠΎΡ ΡΠ΅ΡΡΡΡ, Π½ΠΎ ΠΊ InternetGateway
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ip. Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°, ΡΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NAT-Gateway, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ip Π°Π΄ΡΠ΅ΡΠΎΠ², ΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡ, Π° Π½Π΅ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π²Π½Π΅. Π’ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PrivateSubnet
ΠΈ PublicSubnet
, ΠΏΠΎ ΡΡΡΠΈ PublicSubnet
ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠΉ RouteTable
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΠΊ Π½Π° InternetGateway
, Π° PrivateSubnet
ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠ² Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ. ΠΠ½ΠΎΠ³ΠΎ aws ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΏΠΎ ΡΠΈΠΏΡ DynamoDB, SQS ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ΡΠ΅Π· API, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ Π½Π°Ρ ΡΠ΅ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΊΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΈ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡ ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΡΠ΅ΡΡΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ NAT Gateway
, Π½ΠΎ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»ΡΡΡΠ΅, ΠΈ ΡΡΠΎ VPC Endpoint
. VPC Endpoint
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ aws, ΠΈ ΡΡΠ°ΡΠΈΠΊ Π½Π΅ Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΠΆΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
Π‘ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ Π²ΡΠ΅ ΡΡΠ½ΠΎ, Π½ΠΎ Lambda
Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ aws ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ ΠΊΠ°ΠΊ ΠΆΠ΅ Π»ΡΠΌΠ±Π΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ VPC
. ΠΡ Π²ΡΠ΅ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ VPC
ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ AWS Lambda
ΡΠ΅ΡΠ²ΠΈΡ.
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ Π²ΡΠΎΠ΄Π΅ DynamoDB
ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π½Π΅Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΡΠ°Π²Π°, Π½ΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ RDS
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ VPC
, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ VPC
. ΠΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ VPC
, Π² VPC
ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ENI (ElasticNewtorkInterface)
, Π΅ΠΌΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ip ΠΈΠ· ΠΏΡΠ»Π° Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ ΠΈ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ENI
ΡΠ΅ΡΠ΅Π· V2N (VPC to VPC NAT)
, V2N
ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ENI
. ΠΠ΅ΡΡ ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ Π»ΡΠΌΠ±Π΄Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ΄ΡΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ENI
ΠΊΡΠΎΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ², Π΄Π°Π½Π½ΡΠ΅ Π² CloudWatch
Π±ΡΠ΄ΡΡ ΡΡ
ΠΎΠ΄ΠΈΡΡ Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π»ΡΠΌΠ±Π΄Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ aws ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°ΡΠΈΠΊ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ENI
Π² PrivateSubnet
, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΈΠ±ΠΎ NAT Gateway
Π»ΠΈΠ±ΠΎ VPC Endpoint
.
ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ API Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ API Gateway
ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ. ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· VPC
, ΠΏΡΠΈ ΡΡΠΎΠΌ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΊ VPC
, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠΌΡΡ Π² VPC
.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π° ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ timeout
Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. Π’Π°ΠΉΠΌΠ°ΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ°ΡΡ Π½Π° 30% Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΡΠΎ ΡΠΎΠΏΠΎΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π±Π»ΠΎΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΠΈΠ· ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ), ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ timeout
= 15 ΠΌΠΈΠ½ΡΡΠ°ΠΌ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎ Π»ΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π΄Π»Ρ Π²Π°Ρ, ΠΈΠ»ΠΈ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΠ΅ ΠΎΠ½Π΄ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΡ 128 MB Π΄ΠΎ 10 GB, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΎΠΌΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π΅ Π΅ΠΉ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ, ΠΈ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ»Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ) ΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΅ΠΉ Π±ΡΠ»ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΈ Π½Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠΈ ΠΈ Π½Π° ΠΎΠΏΠ»Π°ΡΠ΅.
Memory | Duration | Cost |
---|---|---|
128 MB | 11.722 s | $0.024628 |
256 MB | 6.678 s | $0.028035 |
512 MB | 3.194 s | $0.026830 |
1024 MB | 1.465 s | $0.024638 |
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ (ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½Π΅Π΅ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Π½Π°, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ "Π·ΠΎΠ»ΠΎΡΠ°Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π°") ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ AWS Lambda Power Tuning.
Docs:
Articles:
Videos: