====== 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