Python
Python 3 & Boto3 SDK
Najpopularniejszy jezyk programowania w swiecie cloud i DevOps. Automatyzuj AWS z Boto3, pisz funkcje Lambda i tworzskrypty operacyjne.
Python to jezyk #1 w ofertach pracy Cloud Engineera. Boto3 to najpotezniejszy sposob na automatyzacje AWS. Lambda, Glue, SageMaker - kluczowe serwisy AWS opieraja sie na Python.
Python to najpopularniejszy jezyk programowania w swiecie Cloud i DevOps. Jego czytelna skladnia, ogromna biblioteka standardowa i ekosystem pakietow czynia go idealnym narzedziem do automatyzacji, skryptow operacyjnych i integracji z uslugami chmurowymi.
Dla Cloud Engineera Python jest szczegolnie wazny ze wzgledu na Boto3 - oficjalne SDK AWS dla Pythona. Boto3 pozwala programistycznie zarzadzac kazdym serwisem AWS - od tworzenia instancji EC2, przez zarzadzanie bucketami S3, po konfigurowanie IAM. To potezniejsze niz AWS CLI, bo pozwala na logike warunkowa, petl i obsluge bledow.
Python to rowniez najczesciej wybierany runtime AWS Lambda - najpopularniejszego serwisu serverless. Napisanie funkcji Lambda w Python to czesto jedno z pierwszych zadan Cloud Engineera w nowej firmie.
Python to jezyk interpretowany - kod jest wykonywany linia po linii bez kompilacji. Boto3 komunikuje sie z AWS API przez HTTPS, uzywajac credentials z profilu AWS CLI.
Zainstaluj Python i Boto3
Python 3.9+ jest preinstalowany na wiekszosci systemow. pip install boto3 dodaje SDK AWS.
Skonfiguruj credentials
aws configure ustawia access key i region. Boto3 automatycznie uzywa credentials z ~/.aws/credentials lub IAM Role.
Napisz skrypt
Importuj boto3, utworz klienta dla serwisu i wywoluj metody API. Obsluz wyjatki (botocore.exceptions).
Uruchom i testuj
python skrypt.py wykonuje kod. Uzywaj logging zamiast print do produkcyjnych skryptow.
Praktyczne porady dotyczace pisania skryptow Python w kontekscie AWS.
Zawsze uzywaj venv
python -m venv .venv i source .venv/bin/activate. Globalna instalacja pakietow prowadzi do konfliktow wersji.
PoczatkujacyUzywaj Session zamiast domyslnego klienta
boto3.Session(profile_name="prod") pozwala precyzyjnie kontrolowac credentials i region. Bezpieczniejsze niz domyslny klient.
ZaawansowanyPaginacja wynikow
API AWS zwraca wyniki stronami. Uzywaj paginatorow Boto3 zamiast recznej petli z NextToken.
PoczatkujacyType hints i mypy
Dodawaj type hints do funkcji. boto3-stubs dodaje typy dla Boto3. mypy wylapuje bledy przed uruchomieniem.
ZaawansowanyLogowanie zamiast print
import logging; logger = logging.getLogger(__name__). Logi Lambda automatycznie trafiaja do CloudWatch.
PoczatkujacyDo czego sluzy Python?
Automatyzacja AWS z Boto3
Tworzenie instancji, zarzadzanie S3, konfigurowanie IAM, czyszczenie nieuzywanych zasobow - wszystko programistycznie z obsluga bledow.
Funkcje AWS Lambda
Serverless computing - reaguj na eventy S3, API Gateway, CloudWatch Events. Python to najpopularniejszy runtime Lambda.
Skrypty operacyjne
Raporty kosztow, audyt bezpieczenstwa, backup automation, monitoring custom metrics. Zadania, ktore CLI jest za proste.
Narzedzia CLI i API
Buduj wlasne narzedzia CLI (Click, Typer) i REST API (FastAPI, Flask) do zarzadzania infrastruktura i automatyzacji workflow.
Co musisz wiedziec?
Boto3
Oficjalne AWS SDK dla Pythona. Dwa interfejsy: Client (niski poziom, 1:1 z API) i Resource (wysoki poziom, bardziej pythoniczny).
Virtual Environment (venv)
Izolowane srodowisko Python z wlasnymi pakietami. python -m venv .venv tworzy nowe srodowisko. Konieczne w kazdym projekcie.
pip
Package manager Pythona. pip install boto3 instaluje pakiet. requirements.txt listuje zaleznosci projektu z pinowanymi wersjami.
Lambda handler
Funkcja Pythona przyjmujaca event i context. def lambda_handler(event, context): to entry point kazdej funkcji Lambda.
f-string
Nowoczesne formatowanie stringow w Python 3.6+. f"Instance {instance_id} is {state}" - czytelne i szybkie.
try/except
Obsluga wyjatkow. Krytyczne przy pracy z API AWS - polaczenie moze sie nie udac, zasob moze nie istniec, uprawnienia moga byc niewystarczajace.
Przyklady Python CLI
Listowanie instancji EC2
Skrypt Boto3 wyswietlajacy wszystkie instancje EC2
import boto3
ec2 = boto3.client('ec2', region_name='eu-central-1')
response = ec2.describe_instances()
for reservation in response['Reservations']:
for instance in reservation['Instances']:
print(f"{instance['InstanceId']} - {instance['State']['Name']}")
Upload pliku do S3
Wyslij plik do bucketu S3 z Boto3
import boto3
s3 = boto3.client('s3')
s3.upload_file('backup.tar.gz', 'moj-bucket', 'backups/backup.tar.gz')
print('Upload zakonczony')
Prosta funkcja Lambda
Handler Lambda reagujacy na event S3
import json
import boto3
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(f'Nowy plik: s3://{bucket}/{key}')
return {'statusCode': 200, 'body': json.dumps('OK')}
Raport kosztow
Pobierz koszty AWS z ostatnich 30 dni
import boto3
from datetime import datetime, timedelta
ce = boto3.client('ce')
end = datetime.today().strftime('%Y-%m-%d')
start = (datetime.today() - timedelta(days=30)).strftime('%Y-%m-%d')
result = ce.get_cost_and_usage(
TimePeriod={'Start': start, 'End': end},
Granularity='MONTHLY',
Metrics=['UnblendedCost']
)
for period in result['ResultsByTime']:
cost = period['Total']['UnblendedCost']
print(f"Koszt: {cost['Amount']} {cost['Unit']}")
Jak Python dziala z AWS?
Python jest glownym jezykiem ekosystemu AWS. Boto3 obsluguje kazdy serwis AWS. Lambda wspiera Python jako runtime pierwszej klasy. AWS CDK pozwala definiowac infrastrukture w Python. AWS Glue uzywa Python do ETL. SageMaker do machine learning. CloudFormation custom resources pisane sa w Python.
Quiz: Python
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz - feedback pojawi sie od razu.
1. Co to jest Boto3?
2. Jaki jest entry point funkcji AWS Lambda w Python?
3. Dlaczego warto uzywac virtual environment?
Serwisy AWS powiazane z Python
Chcesz poznac Python w praktyce?
Kurs Python jest w przygotowaniu. Zapisz sie na newsletter, zeby nie przegapic premiery. W miedzyczasie sprawdz darmowy kurs "AWS od podstaw".