|
1 | | -# Python-Boto3-API |
| 1 | +# Python Boto3 API |
2 | 2 |
|
3 | | -Flask kütüphanesini kullanarak bir Python API geliştirin. Gelişterecek olduğunuz API, Boto3 kütüphanesini kullanarak, AWS'in EC2 servisi ile haberleşmeli ve listeleme, Instance başlatma ve Instance durdurma yeteneklerine ve aşağıda yer alan 3 endpointe sahip olmalı; |
| 3 | + |
| 4 | + |
| 5 | +### Python API uses Flask and Boto3 libraries. It has the features of Instance listing, Instance start and Instance stop; it has 3 endpoints communicate with EC2 service on AWS. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## List Instances |
| 10 | + |
| 11 | +You send a request to this endpoint by entering the following parameters, and you can list all the instances in your AWS account in the region you specify and their status. |
| 12 | + |
| 13 | +``` |
| 14 | +http://<api_host>:<api_port>/ec2/list |
| 15 | +``` |
| 16 | + |
| 17 | +| Parameter | Type | Description | |
| 18 | +| :---------------------- | :------- | :-------------------- | |
| 19 | +| `aws_access_key_id` | `string` | AWS Access Key ID | |
| 20 | +| `aws_secret_access_key` | `string` | AWS Secret Access Key | |
| 21 | +| `region_name` | `string` | AWS Region Name | |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## Start Instance |
| 26 | + |
| 27 | +You send a request to this endpoint by entering the following parameters, and you can start the instance you specified with `instance_id`, in the region you specified with `region_name` and the status of the instance will be changed to `running`. |
| 28 | + |
| 29 | +``` |
| 30 | +http://<api_host>:<api_port>/ec2/start |
| 31 | +``` |
| 32 | + |
| 33 | +| Parameter | Type | Description | |
| 34 | +| :---------------------- | :------- | :-------------------- | |
| 35 | +| `aws_access_key_id` | `string` | AWS Access Key ID | |
| 36 | +| `aws_secret_access_key` | `string` | AWS Secret Access Key | |
| 37 | +| `region_name` | `string` | AWS Region Name | |
| 38 | +| `instance_id` | `string` | Instance ID Number | |
4 | 39 |
|
5 | 40 | --- |
6 | 41 |
|
7 | | -- Endpoint-1: http://<api_host>:<api_port>/ec2/list |
8 | | - |
9 | | -Bu endpoint kullanıcıdan aşağıda yer alan parametreleri almalı; |
10 | | -aws_access_key_id |
11 | | -aws_secret_access_key |
12 | | -region_name |
13 | | -Parametreler kullanıcıdan 3 farklı yöntem ile alınabilir; |
14 | | -Query Parameter |
15 | | -URL Parameter |
16 | | -JSON Body |
17 | | -Yukarıda yer alan 3 yöntem biri ile kullanıcıdan bu parametreleri almanız yeterli olacaktır. Kullanıcı, bu endpointe ilgili parametreler ile istek atarak, iletmiş olduğu region'da var olan EC2 instancelara ait InstanceId değerlerinin bir listesini alabilmeli. |
18 | | - |
19 | | -- Endpoint-2: http://<api_host>:<api_port>/ec2/start |
20 | | - |
21 | | -Bu endpoint kullanıcıdan aşağıda yer alan parametreleri almalı; |
22 | | -aws_access_key_id |
23 | | -aws_secret_access_key |
24 | | -region_name |
25 | | -InstanceId |
26 | | -Parametreler kullanıcıdan 3 farklı yöntem ile alınabilir; |
27 | | -Query Parameter |
28 | | -URL Parameter |
29 | | -JSON Body |
30 | | -Yukarıda yer alan 3 yöntem biri ile kullanıcıdan bu parametreleri almanız yeterli olacaktır. Kullanıcı, bu endpointe ilgili parametreler ile istek atarak, iletmiş olduğu InstanceId değerine sahip olan EC2 instance'ı başlatabilmelidir. |
31 | | - |
32 | | -- Endpoint-3: http://<api_host>:<api_port>/ec2/stop |
33 | | - |
34 | | -Bu endpoint kullanıcıdan aşağıda yer alan parametreleri almalı; |
35 | | -aws_access_key_id |
36 | | -aws_secret_access_key |
37 | | -region_name |
38 | | -InstanceId |
39 | | -Parametreler kullanıcıdan 3 farklı yöntem ile alınabilir; |
40 | | -Query Parameter |
41 | | -URL Parameter |
42 | | -JSON Body |
43 | | -Yukarıda yer alan 3 yöntemden biri ile kullanıcıdan bu parametreleri almanız yeterli olacaktır. Kullanıcı, bu endpointe ilgili parametreler ile istek atarak, iletmiş olduğu InstanceId değerine sahip olan EC2 instance'ı durdurabilmelidir. |
44 | | - |
45 | | -## Opsiyonel |
46 | | - |
47 | | -Burada yer alan taskleri gerçekleştirmeniz ekstra puan almanızı sağlayacaktır. |
48 | | -Uygun HTTP metotları kullanarak, farklı metotlar ile istek atılmasını engellemek. |
49 | | -API host ve port bilgilerini harici bir config dosyasından okumak. |
50 | | -API'a farklı yöntemler ile parametre alabilme yeteneği kazandırmak. |
51 | | -Kullanıcıya detaylı bilgi içeren JSON formatında response dönebilmek. |
52 | | -API response status codelarını düzenleyerek ilgili durumlarda doğru status code dönebilmek. |
53 | | -Uygulamanızı geliştirirken kullanmış olduğunuz Python paketlerini içeren bir requirements.txt dosyası oluşturmak. |
54 | | -Log dosyası oluşturmak. |
55 | | -Try-Except yapısını kullanarak hata oluşabilecek durumları yakalayarak, karşılaşılan hataları kullanıcıya response olarak dönebilmek. |
56 | | -Kaynak kodları bir versiyon kontrol sistemi uygulamasında (Github, Gitlab etc.) yayınlamak. |
| 42 | +## Stop Instance |
| 43 | + |
| 44 | +You send a request to this endpoint by entering the following parameters, and you can stop the instance you specified with `instance_id`, in the region you specified with `region_name` and the status of the instance will be changed to `stopped`. |
| 45 | + |
| 46 | +``` |
| 47 | +http://<api_host>:<api_port>/ec2/stop |
| 48 | +``` |
| 49 | + |
| 50 | +| Parameter | Type | Description | |
| 51 | +| :---------------------- | :------- | :-------------------- | |
| 52 | +| `aws_access_key_id` | `string` | AWS Access Key ID | |
| 53 | +| `aws_secret_access_key` | `string` | AWS Secret Access Key | |
| 54 | +| `region_name` | `string` | AWS Region Name | |
| 55 | +| `instance_id` | `string` | Instance ID Number | |
| 56 | + |
| 57 | +--- |
0 commit comments