====== std.cloud — AWS-Units ======
AWS-Bindings für Lyx: 9 Service-Units und 4 interne Schichten. Alle Anfragen werden mit AWS Signature Version 4 (SigV4) signiert; der HTTP-Transport nutzt ''std.net.https''. Keine externen AWS-SDKs — vollständig in Lyx implementiert.
→ [[lyx_-_programmiersprache:units:cloud|std.cloud]] · [[lyx_-_programmiersprache:units|Standard Library]]
----
===== Schichtenmodell =====
^ Schicht ^ Unit ^ Beschreibung ^
| Service-Layer | ''s3'', ''ec2'', ''dynamodb'', ''lambda'', ''iam'', ''sqs'', ''sns'', ''cloudwatch'', ''secrets'' | Dienst-spezifische Clients und Operationen |
| Credential & Endpoint | ''aws/core'' | ''AWSCreds''-Typ, Credential Chain, Endpoint-Auflösung |
| Signatur | ''aws/sigv4'' | AWS Signature Version 4 — Header-Auth und Query-Presigning |
| Transport | ''aws/transport'' | HTTP-Request/Response, Retry-Logik, JSON- und XML-Protokoll-Helpers |
| XML-Utilities | ''aws/xml'' | Leichtgewichtiger XML-Parser + Query-String-Builder für EC2/S3 |
----
===== std.cloud.aws.core =====
Credential-Verwaltung und Endpoint-Auflösung. Wird von allen Service-Units als Basis verwendet.
==== Typen ====
^ Typ ^ Felder ^ Beschreibung ^
| ''AWSCreds'' | accessKey, secretKey, sessionToken, expiration, source, region, profile | AWS-Zugangsdaten (alle Felder ''int64''/''pchar'') |
| ''AWSServiceConfig'' | region, endpoint, useDualStack, useFIPS, maxRetries, timeoutMs | Erweiterte Service-Konfiguration |
==== Konstanten ====
^ Konstante ^ Wert ^ Bedeutung ^
| ''CREDS_STATIC'' | 1 | Hardcodierte Credentials |
| ''CREDS_ENV'' | 2 | Aus Umgebungsvariablen |
| ''CREDS_FILE'' | 3 | Aus ''~/.aws/credentials'' |
| ''CREDS_ECS'' | 4 | ECS Task Role (Metadata) |
| ''CREDS_EC2_META'' | 5 | EC2 Instance Metadata Service |
==== Funktionen ====
^ Funktion ^ Signatur ^ Beschreibung ^
| ''AWSCredentialsStatic'' | ''(accessKey, secretKey: pchar): AWSCreds'' | Statische Credentials |
| ''AWSCredentialsStaticWithToken'' | ''(accessKey, secretKey, sessionToken: pchar): AWSCreds'' | Statisch + Session-Token (STS) |
| ''AWSCredentialsFromEnv'' | ''(): AWSCreds'' | Aus ''AWS_ACCESS_KEY_ID'' / ''AWS_SECRET_ACCESS_KEY'' / ''AWS_SESSION_TOKEN'' |
| ''AWSCredentialsFromFile'' | ''(path, profile: pchar): AWSCreds'' | Aus INI-Datei (''0'' → ''~/.aws/credentials'', ''default'') |
| ''AWSCredentialsProfile'' | ''(profile: pchar): AWSCreds'' | Kurzform: ''AWSCredentialsFromFile(0, profile)'' |
| ''AWSCredentialsDefault'' | ''(): AWSCreds'' | Credential Chain: Env → ''~/.aws/credentials'' |
| ''AWSCredentialsFree'' | ''(creds: AWSCreds)'' | Gibt alle allokierten Felder frei |
| ''AWSCredentialsIsExpired'' | ''(creds: AWSCreds): int64'' | 1 wenn ''expiration'' überschritten |
| ''AWSCredentialsRefresh'' | ''(creds: AWSCreds): AWSCreds'' | Neue Credentials aus gleicher Quelle laden |
| ''AWSEndpoint'' | ''(service, region: pchar): int64'' | Hostname für AWS-Dienst (allokiert) |
| ''AWSS3Endpoint'' | ''(bucket, region: pchar, pathStyle: int64): int64'' | S3-Hostname (virtual-hosted oder path-style) |
| ''AWSServiceConfigDefault'' | ''(region: pchar): AWSServiceConfig'' | Standard-Config (30 s Timeout, 3 Retries) |
----
===== std.cloud.aws.sigv4 =====
AWS Signature Version 4 — wird intern von ''transport'' genutzt; in der Regel kein direkter Aufruf nötig.
^ Funktion ^ Beschreibung ^
| ''SigV4Sign(ctx: int64)'' | Berechnet Authorization-Header und schreibt ihn in ''AWSSignCtx.authHeader'' |
| ''SigV4SignQuery(ctx: int64, expires: int64): int64'' | Erstellt signierten Query-String (Presigned URL), ''expires'' in Sekunden |
| ''SigV4DateNow(dateBuf, dateTimeBuf: int64)'' | Füllt Datum (YYYYMMDD) und Datum+Zeit (YYYYMMDDTHHmmssZ) |
----
===== std.cloud.aws.transport =====
HTTP-Client-Schicht mit AWS-spezifischen Protokoll-Helpers.
^ Funktion ^ Beschreibung ^
| ''AWSSend(req: AWSRequest): AWSResponse'' | Einzelner HTTP-Request mit SigV4-Signatur |
| ''AWSSendWithRetry(req: AWSRequest, maxRetries: int64): AWSResponse'' | Mit exponentiellem Backoff |
| ''AWSResponseFree(r: AWSResponse)'' | Gibt Response-Body und Header-Puffer frei |
| ''AWSResponseGetHeader(resp: AWSResponse, name: pchar): pchar'' | Header-Wert auslesen |
| ''AWSJSONRequest(...)'' | Shortcut für JSON-Protokoll (Lambda, DynamoDB, CloudWatch) |
| ''AWSQueryRequest(...)'' | Shortcut für Query-Protokoll (EC2, IAM, SQS) |
| ''AWSRestJSONRequest(...)'' | Shortcut für REST/JSON (Lambda Invoke) |
| ''AWSS3Request(...)'' | Shortcut für REST/XML (S3) |
----
===== std.cloud.s3 =====
Amazon S3 Client (REST/XML-Protokoll). 54 pub Funktionen. Neben AWS S3 unterstützt die Unit direkt **Cloudflare R2** und **MinIO** über kompatible Connect-Funktionen.
==== Typen ====
^ Typ ^ Felder ^ Beschreibung ^
| ''S3Client'' | creds, region, endpoint, pathStyle, useTLS, port, lastStatus, lastError, lastErrMsg | Verbindungs-Handle inkl. Fehler-State |
| ''S3Object'' | key, size, etag, lastModified, storageClass | Objekt-Eintrag aus Listing |
| ''S3ObjectMeta'' | key, etag, size, lastModified, contentType, versionId | Vollständige HEAD-Metadaten |
| ''S3BucketList'' | count, names | Ergebnis von ''S3ListBuckets'' |
==== Verbindung herstellen ====
^ Funktion ^ Beschreibung ^
| ''S3Connect(creds, region)'' | AWS S3 — virtual-hosted Endpoints |
| ''S3ConnectEndpoint(creds, region, endpoint, useTLS, pathStyle)'' | Custom Endpoint (LocalStack, andere S3-kompatible Dienste) |
| ''S3ConnectR2(accountId, accessKey, secretKey)'' | **Cloudflare R2** via S3-API (path-style, TLS) |
| ''S3ConnectMinio(host, port, accessKey, secretKey)'' | **MinIO** (path-style, HTTP auf Port) |
| ''S3ConnectConfig(creds, cfg)'' | Mit ''AWSServiceConfig'' |
| ''S3Close(client)'' | Credentials freigeben |
==== Fehlerbehandlung ====
^ Funktion ^ Beschreibung ^
| ''S3LastStatus(client): int64'' | Letzter HTTP-Statuscode (z.B. 404, 403) |
| ''S3LastError(client): pchar'' | Letzter Fehlertext (''NoSuchKey'', ''AccessDenied'', …) |
| ''S3LastErrorCode(client): pchar'' | AWS-Fehlercode aus XML |
==== Bucket-Operationen ====
^ Funktion ^ Beschreibung ^
| ''S3ListBuckets(client): S3BucketList'' | Alle Buckets (strukturiert; ''S3BucketListCount'', ''S3BucketListGetName'') |
| ''S3BucketCreate(client, bucket)'' | Bucket anlegen |
| ''S3BucketDelete(client, bucket)'' | Bucket löschen |
| ''S3BucketExists(client, bucket): int64'' | 1 wenn Bucket existiert |
==== Objekt-Operationen ====
^ Funktion ^ Beschreibung ^
| ''S3PutObject(client, bucket, key, data, dataLen, contentType)'' | Aus Speicher hochladen |
| ''S3PutObjectFile(client, bucket, key, localPath, contentType)'' | Aus lokaler Datei hochladen |
| ''S3GetObject(client, bucket, key): int64'' | Body als allokierten Puffer |
| ''S3GetObjectFile(client, bucket, key, localPath): int64'' | In lokale Datei speichern |
| ''S3GetObjectRange(client, bucket, key, rangeStart, rangeEnd): int64'' | Teilbereich herunterladen (HTTP Range) |
| ''S3DeleteObject(client, bucket, key): int64'' | Einzelnes Objekt löschen |
| ''S3DeleteObjects(client, bucket, keys, count): int64'' | Mehrere Objekte in einem Request löschen |
| ''S3HeadObject(client, bucket, key): S3ObjectMeta'' | Metadaten ohne Body (contentType, versionId, …) |
| ''S3ObjectExists(client, bucket, key): int64'' | 1 wenn Objekt existiert |
| ''S3CopyObject(client, srcBucket, srcKey, dstBucket, dstKey): int64'' | Server-seitiges Kopieren |
| ''S3GetObjectSize(client, bucket, key): int64'' | Dateigröße in Bytes |
| ''S3GetETag(client, bucket, key): int64'' | ETag-String als allokierten Puffer |
==== Listing & Pagination ====
^ Funktion ^ Beschreibung ^
| ''S3ListObjects(client, bucket, prefix, maxKeys): int64'' | Bis zu ''maxKeys'' Objekte (strukturiertes Ergebnis) |
| ''S3ListObjectsNext(client, bucket, prefix, token, maxKeys): int64'' | Nächste Seite mit Continuation-Token |
| ''S3ListAll(client, bucket, prefix): int64'' | Alle Objekte automatisch paginiert |
| ''S3ListWithDelimiter(client, bucket, prefix, delimiter, maxKeys): int64'' | Mit Delimiter (Verzeichnis-Simulation) |
Listing-Ergebnisse werden mit Helper-Funktionen ausgelesen:
^ Funktion ^ Beschreibung ^
| ''S3ListCount(list): int64'' | Anzahl der Einträge |
| ''S3ListIsTruncated(list): int64'' | 1 wenn weitere Seiten vorhanden |
| ''S3ListGetToken(list): pchar'' | Continuation-Token für nächste Seite |
| ''S3ListGetKey(list, i): pchar'' | Key des i-ten Eintrags |
| ''S3ListGetSize(list, i): int64'' | Größe des i-ten Eintrags |
| ''S3ListGetETag(list, i): pchar'' | ETag des i-ten Eintrags |
| ''S3ListGetModified(list, i): pchar'' | Änderungsdatum des i-ten Eintrags |
| ''S3ListGetPrefix(list, i): pchar'' | Gemeinsamer Prefix (bei Delimiter) |
| ''S3ListFree(list): void'' | Ergebnis freigeben |
==== Multipart-Upload ====
Für Dateien > 100 MB empfohlen (bis 5 TB, je Part 5 MB–5 GB):
^ Funktion ^ Beschreibung ^
| ''S3MultipartBegin(client, bucket, key, contentType): int64'' | Upload-ID starten |
| ''S3MultipartUploadPart(client, bucket, key, uploadId, partNum, data, dataLen): int64'' | Part hochladen (gibt ETag zurück) |
| ''S3MultipartComplete(client, bucket, key, uploadId, parts, partCount): int64'' | Alle Parts zusammenführen |
| ''S3MultipartAbort(client, bucket, key, uploadId): int64'' | Upload abbrechen |
| ''S3PutObjectMultipart(client, bucket, key, data, dataLen, contentType, partSize): int64'' | **High-Level:** teilt automatisch auf und lädt hoch |
==== Presigned URLs ====
^ Funktion ^ Beschreibung ^
| ''S3PresignGet(client, bucket, key, expiresSec): int64'' | Presigned GET-URL |
| ''S3PresignPut(client, bucket, key, expiresSec): int64'' | Presigned PUT-URL (Upload ohne Credentials) |
| ''S3PresignDelete(client, bucket, key, expiresSec): int64'' | Presigned DELETE-URL |
| ''S3PresignHead(client, bucket, key, expiresSec): int64'' | Presigned HEAD-URL |
| ''S3PresignURL(client, bucket, key, expiresSec): int64'' | Alias für ''S3PresignGet'' |
import std.cloud.aws.core;
import std.cloud.s3;
import std.alloc;
fn main(): int64 {
// AWS S3
var creds: AWSCreds := AWSCredentialsDefault();
var s3: S3Client := S3Connect(creds, "eu-central-1"c);
// Große Datei automatisch per Multipart hochladen
var sz: int64 := FileSize("/tmp/dump.tar.gz"c);
var data: int64 := alloc(sz);
ReadFile("/tmp/dump.tar.gz"c, data as pchar, sz);
S3PutObjectMultipart(s3, "mein-bucket"c, "backups/dump.tar.gz"c,
data, sz, "application/gzip"c, 50000000); // 50 MB Parts
free(data, sz);
// Paginiertes Listing
var list: int64 := S3ListAll(s3, "mein-bucket"c, "backups/"c);
var i: int64 := 0;
while (i < S3ListCount(list)) {
Print(S3ListGetKey(list, i)); PrintLn(""c);
i := i + 1;
}
S3ListFree(list);
S3Close(s3);
return 0;
}
// MinIO (lokale Entwicklung):
var s3m: S3Client := S3ConnectMinio("localhost"c, 9000,
"minioadmin"c, "minioadmin"c);
// Cloudflare R2:
var s3r: S3Client := S3ConnectR2("mein-account-id"c,
"r2-access-key"c, "r2-secret-key"c);
----
===== std.cloud.ec2 =====
Amazon EC2: Instanzen, Images, Key Pairs, Security Groups, VPCs, Elastic IPs, EBS-Volumes. 32 pub Funktionen.
==== Wichtige Typen ====
^ Typ ^ Felder ^
| ''EC2Client'' | creds, region |
| ''EC2Instance'' | instanceId, state, publicIp, privateIp, imageId, instanceType (alle ''int64'') |
| ''EC2Volume'' | volumeId, state, size, az, volumeType |
| ''EC2SecurityGroup'' | groupId, groupName, description, vpcId |
==== Funktionen (Auswahl) ====
^ Funktion ^ Beschreibung ^
| ''EC2Connect(creds, region)'' | EC2-Client erstellen |
| ''EC2DescribeInstances(client)'' | XML: alle Instanzen |
| ''EC2RunInstances(client, imageId, instanceType, keyName, sgId, subnetId, count)'' | Neue Instanzen starten |
| ''EC2TerminateInstances(client, instanceId)'' | Instanz terminieren |
| ''EC2StartInstances / EC2StopInstances'' | Instanz starten / stoppen |
| ''EC2DescribeInstanceById(client, instanceId): EC2Instance'' | Instanzdetails als Struct |
| ''EC2CreateImage(client, instanceId, name, desc)'' | AMI aus Instanz erstellen |
| ''EC2ImportKeyPair(client, keyName, publicKeyBase64)'' | SSH-Key importieren |
| ''EC2CreateSecurityGroup / EC2AuthorizeSGIngress'' | SG anlegen + Ingress-Regel hinzufügen |
| ''EC2CreateVpc / EC2CreateSubnet (via DescribeSubnets)'' | VPC-Infrastruktur |
| ''EC2AllocateAddress / EC2AssociateAddress'' | Elastic IP zuweisen und verknüpfen |
| ''EC2CreateVolume / EC2AttachVolume / EC2DetachVolume'' | EBS-Volumes |
| ''EC2CreateSnapshot(client, volumeId, desc)'' | EBS-Snapshot |
| ''EC2DescribeAvailabilityZones(client)'' | Verfügbare AZs |
----
===== std.cloud.dynamodb =====
Amazon DynamoDB Client (JSON-Protokoll). 20 pub Funktionen.
DynamoDB-Items werden über den ''DDBItem''-Typ aufgebaut (Attribut-Map mit Typ-Tags ''S''/''N''/''BOOL'').
^ Funktion ^ Beschreibung ^
| ''DDBConnect(creds, region): DDBClient'' | Client erstellen |
| ''DDBItemNew / DDBItemFree'' | Item-Map anlegen / freigeben |
| ''DDBItemSetStr(item, key, val)'' | String-Attribut setzen (Typ-Tag ''S'') |
| ''DDBItemSetNum(item, key, val)'' | Zahl-Attribut (Typ-Tag ''N'', val als pchar) |
| ''DDBItemSetBool(item, key, val)'' | Boolean-Attribut (Typ-Tag ''BOOL'') |
| ''DDBCreateTable(client, tableName, hashKeyName, hashKeyType, rangeKeyName, rangeKeyType, rcu, wcu)'' | Tabelle mit provisioned Throughput |
| ''DDBCreateTableOnDemand(client, tableName, ...)'' | Tabelle mit PAY_PER_REQUEST |
| ''DDBPutItem(client, tableName, item)'' | Item einfügen |
| ''DDBGetItem(client, tableName, keyName, keyVal)'' | Item lesen (JSON-Response) |
| ''DDBDeleteItem(client, tableName, keyName, keyVal)'' | Item löschen |
| ''DDBQuery(client, tableName, keyName, keyVal, filterExpr)'' | Query mit Filter |
| ''DDBScan(client, tableName, filterExpr)'' | Full Table Scan |
| ''DDBUpdateItem(client, tableName, keyName, keyVal, updateExpr)'' | Item aktualisieren |
----
===== std.cloud.lambda =====
AWS Lambda: Funktionen verwalten und aufrufen. 15 pub Funktionen.
^ Funktion ^ Beschreibung ^
| ''LambdaConnect(creds, region): LambdaClient'' | Client erstellen |
| ''LambdaListFunctions(client)'' | Alle Funktionen auflisten (JSON) |
| ''LambdaCreateFunction(client, name, runtime, handler, role, zipBase64, env)'' | Neue Funktion erstellen |
| ''LambdaInvoke(client, name, payload, payloadLen): int64'' | Synchron aufrufen (RequestResponse); gibt Response-Body zurück |
| ''LambdaInvokeAsync(client, name, payload, payloadLen): int64'' | Asynchron (Event) |
| ''LambdaUpdateFunctionCode(client, name, zipBase64)'' | Code deployen |
| ''LambdaUpdateFunctionConfig(client, name, handler, role, timeout, memorySize, env)'' | Konfiguration ändern |
| ''LambdaPublishVersion(client, name, desc)'' | Version veröffentlichen |
| ''LambdaCreateEventSourceMapping(client, functionName, eventSourceArn, batchSize)'' | SQS/DynamoDB Stream → Lambda |
----
===== std.cloud.iam =====
AWS IAM + STS: Benutzer, Rollen, Policies und temporäre Credentials. 23 pub Funktionen.
^ Funktion ^ Beschreibung ^
| ''IAMConnect(creds): IAMClient'' | IAM-Client (globaler Endpoint) |
| ''IAMListUsers / IAMGetUser / IAMCreateUser / IAMDeleteUser'' | Benutzer-CRUD |
| ''IAMListRoles / IAMGetRole / IAMCreateRole / IAMDeleteRole'' | Rollen-CRUD |
| ''IAMListPolicies(client, scope)'' | Policies auflisten (scope: ''All''/''Local''/''AWS'') |
| ''IAMAttachRolePolicy(client, roleName, policyArn)'' | Policy an Rolle binden |
| ''IAMDetachRolePolicy / IAMListAttachedRolePolicies'' | Policy entfernen / auflisten |
| ''IAMCreateAccessKey / IAMDeleteAccessKey / IAMListAccessKeys'' | Access-Key-Verwaltung |
| ''STSConnect(creds): STSClient'' | STS-Client |
| ''STSAssumeRole(client, roleArn, sessionName): STSCredentials'' | Temporäre Credentials per AssumeRole |
| ''STSGetCallerIdentity(client)'' | Account-ID und ARN der aktuellen Identity |
----
===== std.cloud.sqs =====
Amazon SQS: Standard- und FIFO-Queues. 17 pub Funktionen.
^ Funktion ^ Beschreibung ^
| ''SQSConnect(creds, region): SQSClient'' | Client erstellen |
| ''SQSCreateQueue(client, name, visibilityTimeoutSec, retentionSec)'' | Standard-Queue anlegen |
| ''SQSCreateFIFOQueue(client, name)'' | FIFO-Queue (Suffix ''.fifo'' wird automatisch gesetzt) |
| ''SQSGetQueueUrl(client, name)'' | Queue-URL ermitteln |
| ''SQSSendMessage(client, queueUrl, body, delaySeconds)'' | Nachricht senden |
| ''SQSSendMessageFIFO(client, queueUrl, body, groupId, deduplicationId)'' | FIFO-Nachricht senden |
| ''SQSReceiveMessages(client, queueUrl, maxMessages, waitSeconds)'' | Nachrichten empfangen (Long Polling) |
| ''SQSDeleteMessage(client, queueUrl, receiptHandle)'' | Nachricht quittieren |
| ''SQSDeleteMessageBatch(client, queueUrl, handles, count)'' | Batch-Quittierung |
| ''SQSChangeMessageVisibility(client, queueUrl, receiptHandle, seconds)'' | Visibility-Timeout ändern |
| ''SQSPurgeQueue(client, queueUrl)'' | Queue leeren |
| ''SQSParseFirstMessage(xml, xmlLen): SQSMessage'' | Erste Nachricht aus XML-Response parsen |
----
===== std.cloud.sns =====
Amazon SNS: Topics, Subscriptions, Push-Benachrichtigungen. 16 pub Funktionen.
^ Funktion ^ Beschreibung ^
| ''SNSConnect(creds, region): SNSClient'' | Client erstellen |
| ''SNSCreateTopic / SNSCreateFIFOTopic / SNSDeleteTopic'' | Topic-Verwaltung |
| ''SNSPublish(client, topicArn, subject, message)'' | Nachricht an Topic veröffentlichen |
| ''SNSPublishToPhone(client, phoneNumber, message)'' | SMS direkt an Nummer |
| ''SNSPublishBatch(client, topicArn, entries, count)'' | Batch-Publish |
| ''SNSSubscribe(client, topicArn, protocol, endpoint)'' | Subscription anlegen (Email, SQS, HTTPS, …) |
| ''SNSUnsubscribe / SNSListSubscriptionsByTopic'' | Subscription entfernen / auflisten |
| ''SNSConfirmSubscription(client, topicArn, token)'' | Subscription-Token bestätigen |
| ''SNSCreatePlatformApplication / SNSCreatePlatformEndpoint'' | Mobile Push (APNs, GCM) |
----
===== std.cloud.cloudwatch =====
Amazon CloudWatch: Metriken, Alarme, Logs. 21 pub Funktionen in zwei Clients (''CWClient'' für Metriken/Alarme, ''CWLogsClient'' für CloudWatch Logs).
^ Funktion ^ Beschreibung ^
| ''CWConnect(creds, region): CWClient'' | Metriken/Alarme-Client |
| ''CWLogsConnect(creds, region): CWLogsClient'' | Logs-Client |
| ''CWPutMetricData(client, ns, datumJson, count)'' | Metriken veröffentlichen |
| ''CWGetMetricStatistics(client, ns, metricName, startTime, endTime, period, stats)'' | Statistiken abfragen |
| ''CWListMetrics(client, ns, metricName)'' | Verfügbare Metriken auflisten |
| ''CWPutMetricAlarm(client, name, ns, metric, threshold, op, period, evalPeriods, sns)'' | Alarm anlegen |
| ''CWDescribeAlarms / CWDeleteAlarms'' | Alarme abfragen / löschen |
| ''CWLogsCreateLogGroup / CWLogsDeleteLogGroup'' | Log-Gruppen verwalten |
| ''CWLogsCreateLogStream / CWLogsDescribeLogStreams'' | Log-Streams verwalten |
| ''CWLogsPutLogEvents(client, groupName, streamName, events, count)'' | Log-Einträge schreiben |
| ''CWLogsGetLogEvents(client, groupName, streamName, startTime, endTime)'' | Log-Einträge lesen |
----
===== std.cloud.secrets =====
AWS Secrets Manager + SSM Parameter Store. 23 pub Funktionen in zwei Clients.
^ Funktion ^ Beschreibung ^
| ''SecretsConnect(creds, region): SecretsClient'' | Secrets Manager Client |
| ''SSMConnect(creds, region): SSMClient'' | SSM Parameter Store Client |
| ''SecretsGetString(client, secretId)'' | Secret-Wert als String (häufigste Operation) |
| ''SecretsGetValue / SecretsGetValueVersion'' | Mit/ohne Version-ID |
| ''SecretsCreateSecret(client, name, desc, value)'' | Neues Secret anlegen |
| ''SecretsPutValue(client, secretId, secretString)'' | Secret-Wert aktualisieren |
| ''SecretsDeleteSecret(client, secretId, recoveryWindowDays)'' | Secret löschen (0 = sofort) |
| ''SecretsRotateSecret(client, secretId, lambdaArn)'' | Automatische Rotation einrichten |
| ''SecretsTagResource(client, secretId, key, value)'' | Tag hinzufügen |
| ''SSMGetParameterValue(client, name)'' | Parameter-Wert direkt (ohne Typ-Wrapper) |
| ''SSMGetParameter(client, name, withDecryption)'' | Parameter mit Typ-Info (SecureString entschlüsseln) |
| ''SSMPutParameter(client, name, value, paramType, overwrite)'' | Parameter anlegen / aktualisieren |
| ''SSMDeleteParameter(client, name)'' | Parameter löschen |
Letzte Aktualisierung: 2026-06-12