diff --git a/changelog/command_changes.log b/changelog/command_changes.log new file mode 100644 index 00000000..c365d1dc --- /dev/null +++ b/changelog/command_changes.log @@ -0,0 +1,1068 @@ +src/content/docs/aws/integrations/aws-sdks/ruby.md:77: {{< command >}} +$ ruby ./localstack.rb +Created bucket doc-example-bucket-b911f85f-4dd3-4668-a32e-3f69aa4e37dc. +Your bucket's region is: us-east-2 +{{< /command >}} -> ```bash +ruby ./localstack.rb +Created bucket doc-example-bucket-b911f85f-4dd3-4668-a32e-3f69aa4e37dc. +Your bucket's region is: us-east-2 +``` +src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.md:89: {{< command >}} +$ hyperexecute --user '' --key '' --config he.yaml +{{< /command >}} -> ```bash +hyperexecute --user '' --key '' --config he.yaml +``` +src/content/docs/aws/integrations/app-frameworks/serverless-framework.md:70: {{< command >}} +$ npm install -D serverless-localstack +{{< / command >}} -> ```bash +npm install -D serverless-localstack +``` +src/content/docs/aws/integrations/app-frameworks/serverless-framework.md:134: {{< command >}} +$ localstack start +{{< / command >}} -> ```bash +localstack start +``` +src/content/docs/aws/integrations/app-frameworks/serverless-framework.md:139: {{< command >}} +$ serverless deploy --stage local +{{< / command >}} -> ```bash +serverless deploy --stage local +``` +src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md:66: {{< command >}} +$ gradle init +{{< / command >}} -> ```bash +gradle init +``` +src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md:72: {{< command >}} +$ gradle wrapper +{{< / command >}} -> ```bash +gradle wrapper +``` +src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md:79: {{< command >}} +$ ./gradlew +{{< / command >}} -> ```bash +./gradlew +``` +src/content/docs/aws/integrations/app-frameworks/architect.md:20: {{< command >}} +$ npm install -g architect-local @architect/architect aws-sdk +{{< /command >}} -> ```bash +npm install -g architect-local @architect/architect aws-sdk +``` +src/content/docs/aws/integrations/app-frameworks/architect.md:28: {{< command >}} +$ mkdir architect_quickstart && cd architect_quickstart +{{< / command >}} -> ```bash +mkdir architect_quickstart && cd architect_quickstart +``` +src/content/docs/aws/integrations/app-frameworks/architect.md:34: {{< command >}} +$ arclocal init +{{< / command >}} -> ```bash +arclocal init +``` +src/content/docs/aws/integrations/app-frameworks/architect.md:42: {{< command >}} +$ arclocal deploy +{{< / command >}} -> ```bash +arclocal deploy +``` +src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md:19: {{< command >}} +$ docker-compose up -d +{{< / command >}} -> ```bash +docker-compose up -d +``` +src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md:25: {{< command >}} +$ awslocal lambda create-function \ + --function-name fun1 \ + --handler lambda.handler \ + --runtime python3.8 \ + --role arn:aws:iam::000000000000:role/lambda-role \ + --zip-file fileb://lambda.zip +{ + "FunctionName": "fun1", + "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:fun1", + "Runtime": "python3.8", + "Role": "arn:aws:iam::000000000000:role/lambda-role", + "Handler": "lambda.handler", + "CodeSize": 294, + "Description": "", + "Timeout": 3, + "LastModified": "2021-05-19T02:01:06.617+0000", + "CodeSha256": "/GPsiNXaq4tBA4QpxPCwgpeVfP7j+1tTH6zdkJ3jiU4=", + "Version": "$LATEST", + "VpcConfig": {}, + "TracingConfig": { + "Mode": "PassThrough" + }, + "RevisionId": "d85469d2-8558-4d75-bc0e-5926f373e12c", + "State": "Active", + "LastUpdateStatus": "Successful", + "PackageType": "Zip" +} +{{< / command >}} -> ```bash +awslocal lambda create-function \ + --function-name fun1 \ + --handler lambda.handler \ + --runtime python3.8 \ + --role arn:aws:iam::000000000000:role/lambda-role \ + --zip-file fileb://lambda.zip +{ + "FunctionName": "fun1", + "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:fun1", + "Runtime": "python3.8", + "Role": "arn:aws:iam::000000000000:role/lambda-role", + "Handler": "lambda.handler", + "CodeSize": 294, + "Description": "", + "Timeout": 3, + "LastModified": "2021-05-19T02:01:06.617+0000", + "CodeSha256": "/GPsiNXaq4tBA4QpxPCwgpeVfP7j+1tTH6zdkJ3jiU4=", + "Version": "$LATEST", + "VpcConfig": {}, + "TracingConfig": { + "Mode": "PassThrough" + }, + "RevisionId": "d85469d2-8558-4d75-bc0e-5926f373e12c", + "State": "Active", + "LastUpdateStatus": "Successful", + "PackageType": "Zip" +} +``` +src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md:57: {{< command >}} +$ awslocal secretsmanager create-secret --name localstack +{ + "ARN": "arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI", + "Name": "localstack", + "VersionId": "32bbb8e2-46ee-4322-b3d5-b6459d54513b" +} +{{< / command >}} -> ```bash +awslocal secretsmanager create-secret --name localstack +{ + "ARN": "arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI", + "Name": "localstack", + "VersionId": "32bbb8e2-46ee-4322-b3d5-b6459d54513b" +} +``` +src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md:68: {{< command >}} +$ docker exec -ti kafka kafka-topics --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic t1 +Created topic t1. +{{< / command >}} -> ```bash +docker exec -ti kafka kafka-topics --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic t1 +Created topic t1. +``` +src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md:75: {{< command >}} +$ awslocal lambda create-event-source-mapping \ + --topics t1 \ + --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI \ + --function-name arn:aws:lambda:us-east-1:000000000000:function:fun1 \ + --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["localhost:9092"]}}' +{ + "UUID": "4a2b0ea6-960c-4847-8684-465876dd6dbd", + "BatchSize": 100, + "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:fun1", + "LastModified": "2021-05-19T04:02:49+02:00", + "LastProcessingResult": "OK", + "State": "Enabled", + "StateTransitionReason": "User action", + "Topics": [ + "t1" + ], + "SourceAccessConfigurations": [ + { + "Type": "SASL_SCRAM_512_AUTH", + "URI": "arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI" + } + ], + "SelfManagedEventSource": { + "Endpoints": { + "KAFKA_BOOTSTRAP_SERVERS": [ + "localhost:9092" + ] + } + } +} +{{< / command >}} -> ```bash +awslocal lambda create-event-source-mapping \ + --topics t1 \ + --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI \ + --function-name arn:aws:lambda:us-east-1:000000000000:function:fun1 \ + --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["localhost:9092"]}}' +{ + "UUID": "4a2b0ea6-960c-4847-8684-465876dd6dbd", + "BatchSize": 100, + "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:fun1", + "LastModified": "2021-05-19T04:02:49+02:00", + "LastProcessingResult": "OK", + "State": "Enabled", + "StateTransitionReason": "User action", + "Topics": [ + "t1" + ], + "SourceAccessConfigurations": [ + { + "Type": "SASL_SCRAM_512_AUTH", + "URI": "arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI" + } + ], + "SelfManagedEventSource": { + "Endpoints": { + "KAFKA_BOOTSTRAP_SERVERS": [ + "localhost:9092" + ] + } + } +} +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md:40: {{< command >}} +$ cdklocal --help +{{< /command >}} -> ```bash +cdklocal --help +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md:55: {{< command >}} +$ curl http://localhost:4566/_localstack/health +{{< /command >}} -> ```bash +curl http://localhost:4566/_localstack/health +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md:76: {{< command >}} +$ awslocal sns list-topics + { + "Topics": [ + { + "TopicArn": "arn:aws:sns:us-east-1:000000000000:TestStack-TestTopic339EC197-79F43WWCCS4Z" + } + ] +} +{{< /command >}} -> ```bash +awslocal sns list-topics + { + "Topics": [ + { + "TopicArn": "arn:aws:sns:us-east-1:000000000000:TestStack-TestTopic339EC197-79F43WWCCS4Z" + } + ] +} +``` +src/content/docs/aws/integrations/aws-native-tools/aws-sam.md:28: {{< command >}} +$ pip install aws-sam-cli-local +{{< / command >}} -> ```bash +pip install aws-sam-cli-local +``` +src/content/docs/aws/integrations/aws-native-tools/aws-sam.md:36: {{< command >}} +$ samlocal init +{{< / command >}} -> ```bash +samlocal init +``` +src/content/docs/aws/integrations/aws-native-tools/aws-sam.md:52: {{< command >}} +$ samlocal deploy --guided +{{< / command >}} -> ```bash +samlocal deploy --guided +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:23: {{< command >}} +$ pip install awscli +{{< / command >}} -> ```bash +pip install awscli +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:37: {{< command >}} +$ export AWS_ACCESS_KEY_ID="test" +$ export AWS_SECRET_ACCESS_KEY="test" +$ export AWS_DEFAULT_REGION="us-east-1" + +$ aws --endpoint-url=http://localhost:4566 kinesis list-streams +{{< / command >}} -> ```bash +export AWS_ACCESS_KEY_ID="test" +export AWS_SECRET_ACCESS_KEY="test" +export AWS_DEFAULT_REGION="us-east-1" + +aws --endpoint-url=http://localhost:4566 kinesis list-streams +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:71: {{< command >}} +$ aws s3 mb s3://test --profile localstack +$ aws s3 ls --profile localstack +{{< / command >}} -> ```bash +aws s3 mb s3://test --profile localstack +aws s3 ls --profile localstack +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:88: {{< command >}} +$ pip install awscli-local[ver1] +{{< / command >}} -> ```bash +pip install awscli-local[ver1] +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:96: {{< command >}} +$ pip install awscli-local +{{< / command >}} -> ```bash +pip install awscli-local +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:110: {{< command >}} +awslocal kinesis list-streams +{{< / command >}} -> ```bash +awslocal kinesis list-streams +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:132: {{< command >}} +$ virtualenv .venv +$ . .venv/bin/activate +$ pip install https://github.com/boto/botocore/archive/v2.zip https://github.com/aws/aws-cli/archive/v2.zip +{{< / command >}} -> ```bash +virtualenv .venv +. .venv/bin/activate +pip install https://github.com/boto/botocore/archive/v2.zip https://github.com/aws/aws-cli/archive/v2.zip +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:157: {{< command >}} +$ docker network create localstack +0c9cb3d37b0ea1bfeb6b77ade0ce5525e33c7929d69f49c3e5ed0af457bdf123 +{{< / command >}} -> ```bash +docker network create localstack +0c9cb3d37b0ea1bfeb6b77ade0ce5525e33c7929d69f49c3e5ed0af457bdf123 +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:173: {{< command >}} +$ docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions +{ + "Functions": [] +} +{{< / command >}} -> ```bash +docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions +{ + "Functions": [] +} +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:182: {{< command >}} +$ alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566' +{{< / command >}} -> ```bash +alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566' +``` +src/content/docs/aws/integrations/aws-native-tools/aws-cli.md:188: {{< command >}} +$ laws lambda list-functions +{ + "Functions": [] +} +{{< / command >}} -> ```bash +laws lambda list-functions +{ + "Functions": [] +} +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:20: {{< command >}} +$ localstack start -d +{{< / command >}} -> ```bash +localstack start -d +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:26: {{< command >}} +$ pip install chalice-local +{{< / command >}} -> ```bash +pip install chalice-local +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:32: {{< command >}} +$ chalice-local new-project +{{< / command >}} -> ```bash +chalice-local new-project +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:88: {{< command >}} +$ chalice-local local +Serving on http://127.0.0.1:8000 +{{< / command >}} -> ```bash +chalice-local local +Serving on http://127.0.0.1:8000 +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:95: {{< command >}} +$ curl -X GET http://127.0.0.1:8000 +{"hello":"world"} +{{< / command >}} -> ```bash +curl -X GET http://127.0.0.1:8000 +{"hello":"world"} +``` +src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md:104: {{< command >}} +$ chalice-local deploy + +Creating deployment package. +Creating IAM role: localstack-test-dev +Creating lambda function: localstack-test-dev +Creating Rest API +Resources deployed: +- Lambda ARN: arn:aws:lambda:us-east-1:000000000000:function:localstack-test-dev +- Rest API URL: https://y5iuni004m.execute-api.us-east-1.amazonaws.com/api/ +{{< / command >}} -> ```bash +chalice-local deploy + +Creating deployment package. +Creating IAM role: localstack-test-dev +Creating lambda function: localstack-test-dev +Creating Rest API +Resources deployed: +- Lambda ARN: arn:aws:lambda:us-east-1:000000000000:function:localstack-test-dev +- Rest API URL: https://y5iuni004m.execute-api.us-east-1.amazonaws.com/api/ +``` +src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md:28: {{< command >}} +$ pip install c7n +{{< / command >}} -> ```bash +pip install c7n +``` +src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md:40: {{< command >}} +$ awslocal ec2 run-instances \ + --image-id ami-ff0fea8310f3 \ + --count 1 \ + --instance-type t3.nano \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Custodian,Value=AnyValue}]" +{{< / command >}} -> ```bash +awslocal ec2 run-instances \ + --image-id ami-ff0fea8310f3 \ + --count 1 \ + --instance-type t3.nano \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Custodian,Value=AnyValue}]" +``` +src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md:86: {{< command >}} +$ custodian run \ + --output-dir=. +custodian.yml \ + --profile localstack +{{< / command >}} -> ```bash +custodian run \ + --output-dir=. +custodian.yml \ + --profile localstack +``` +src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md:120: {{< command >}} +$ custodian run -s . \ + --metrics aws custodian.yml \ + --profile localstack +{{< / command >}} -> ```bash +custodian run -s . \ + --metrics aws custodian.yml \ + --profile localstack +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:45: {{< command >}} +$ pip install terraform-local +{{< / command >}} -> ```bash +pip install terraform-local +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:51: {{< command >}} +$ tflocal --help + +Usage: terraform [global options] [args] +... + +{{< / command >}} -> ```bash +tflocal --help + +Usage: terraform [global options] [args] +... + +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:64: {{< command >}} +$ tflocal init +{{< / command >}} -> ```bash +tflocal init +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:70: {{< command >}} +$ tflocal apply +{{< / command >}} -> ```bash +tflocal apply +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:472: {{< command >}} +$ cdktf synth && cdktf deploy +{{< /command >}} -> ```bash +cdktf synth && cdktf deploy +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:492: {{< command >}} +$ awslocal s3 ls +{{< /command >}} -> ```bash +awslocal s3 ls +``` +src/content/docs/aws/integrations/infrastructure-as-code/terraform.md:502: {{< command >}} +$ TF_CMD=tofu tflocal --help + +Usage: tofu [global options] [args] + +The available commands for execution are listed below. +The primary workflow commands are given first, followed by +less common or more advanced commands. +... + +{{< /command >}} -> ```bash +TF_CMD=tofu tflocal --help + +Usage: tofu [global options] [args] + +The available commands for execution are listed below. +The primary workflow commands are given first, followed by +less common or more advanced commands. +... + +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:39: {{< command >}} +$ export PULUMI_CONFIG_PASSPHRASE=lsdevtest +$ export PULUMI_BACKEND_URL=file://`pwd`/myproj +{{< / command >}} -> ```bash +export PULUMI_CONFIG_PASSPHRASE=lsdevtest +export PULUMI_BACKEND_URL=file://`pwd`/myproj +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:52: {{< command >}} +$ pip install pulumi-local +{{< / command >}} -> ```bash +pip install pulumi-local +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:58: {{< command >}} +$ pulumilocal --help + +Pulumi - Modern Infrastructure as Code +... + +{{< / command >}} -> ```bash +pulumilocal --help + +Pulumi - Modern Infrastructure as Code +... + +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:70: {{< command >}} +$ mkdir myproj +$ pulumilocal new aws-typescript -y -s lsdev --cwd myproj +{{< / command >}} -> ```bash +mkdir myproj +pulumilocal new aws-typescript -y -s lsdev --cwd myproj +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:83: {{< command >}} +$ pulumilocal stack select -c lsdev --cwd myproj +{{< / command >}} -> ```bash +pulumilocal stack select -c lsdev --cwd myproj +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:90: {{< command >}} +$ pulumilocal up --cwd myproj +{{< / command >}} -> ```bash +pulumilocal up --cwd myproj +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:112: {{< command >}} +$ mkdir quickstart && cd quickstart +$ pulumi new aws-typescript +{{< / command >}} -> ```bash +mkdir quickstart && cd quickstart +pulumi new aws-typescript +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:142: {{< command >}} +$ tree -L 1 +. +├── index.ts +├── node_modules +├── package.json +├── package-lock.json +├── Pulumi.dev.yaml +├── Pulumi.yaml +└── tsconfig.json +{{< / command >}} -> ```bash +tree -L 1 +. +├── index.ts +├── node_modules +├── package.json +├── package-lock.json +├── Pulumi.dev.yaml +├── Pulumi.yaml +└── tsconfig.json +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:446: {{< command >}} +$ pulumi up +{{< / command >}} -> ```bash +pulumi up +``` +src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md:452: {{< command >}} +$ awslocal s3 ls +{{< / command >}} -> ```bash +awslocal s3 ls +``` +src/content/docs/aws/integrations/infrastructure-as-code/former2.md:55: {{< command >}} +$ awslocal s3 mb s3://my-bucket +$ awslocal sqs create-queue --queue-name my-queue +$ awslocal dynamodb create-table \ + --table-name my-table \ + --attribute-definitions AttributeName=id,AttributeType=S \ + --key-schema AttributeName=id,KeyType=HASH \ + --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 +{{< / command >}} -> ```bash +awslocal s3 mb s3://my-bucket +awslocal sqs create-queue --queue-name my-queue +awslocal dynamodb create-table \ + --table-name my-table \ + --attribute-definitions AttributeName=id,AttributeType=S \ + --key-schema AttributeName=id,KeyType=HASH \ + --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 +``` +src/content/docs/aws/integrations/infrastructure-as-code/former2.md:67: {{< command >}} +$ localstack logs + +2023-10-14T15:31:08.852 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.CreateBucket => 200 +2023-10-14T15:31:09.356 INFO --- [ asgi_gw_0] localstack.request.aws : AWS sqs.CreateQueue => 200 +2023-10-14T15:31:12.920 INFO --- [ asgi_gw_0] botocore.credentials : Found credentials in environment variables. +2023-10-14T15:31:13.332 INFO --- [ asgi_gw_0] localstack.utils.bootstrap : Execution of "require" took 2028.25ms +2023-10-14T15:31:13.712 INFO --- [ asgi_gw_0] localstack.request.aws : AWS dynamodb.CreateTable => 200 + +$ awslocal s3 ls + +2023-10-14 21:01:08 my-bucket + +$ awslocal sqs list-queues + +{ + "QueueUrls": [ + "http://localhost:4566/000000000000/my-queue" + ] +} + +$ awslocal dynamodb list-tables + +{ + "TableNames": [ + "my-table" + ] +} + +{{< / command >}} -> ```bash +localstack logs + +2023-10-14T15:31:08.852 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.CreateBucket => 200 +2023-10-14T15:31:09.356 INFO --- [ asgi_gw_0] localstack.request.aws : AWS sqs.CreateQueue => 200 +2023-10-14T15:31:12.920 INFO --- [ asgi_gw_0] botocore.credentials : Found credentials in environment variables. +2023-10-14T15:31:13.332 INFO --- [ asgi_gw_0] localstack.utils.bootstrap : Execution of "require" took 2028.25ms +2023-10-14T15:31:13.712 INFO --- [ asgi_gw_0] localstack.request.aws : AWS dynamodb.CreateTable => 200 + +awslocal s3 ls + +2023-10-14 21:01:08 my-bucket + +awslocal sqs list-queues + +{ + "QueueUrls": [ + "http://localhost:4566/000000000000/my-queue" + ] +} + +awslocal dynamodb list-tables + +{ + "TableNames": [ + "my-table" + ] +} + +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:32: {{}} +$ helm repo add crossplane-stable https://charts.crossplane.io/stable +$ helm repo update +$ helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace +{{}} -> ```bash +helm repo add crossplane-stable https://charts.crossplane.io/stable +helm repo update +helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:40: {{}} +$ curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | bash +... +$ sudo mv crossplane /usr/local/bin +{{}} -> ```bash +curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | bash +... +sudo mv crossplane /usr/local/bin +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:46: {{}} +$ crossplane version +Client Version: v1.17.0 +Server Version: v1.17.0 + +$ kubectl get crds | grep crossplane +compositions.apiextensions.crossplane.io 2023-09-03T11:30:36Z +configurations.pkg.crossplane.io 2023-09-03T11:30:36Z +... +{{}} -> ```bash +crossplane version +Client Version: v1.17.0 +Server Version: v1.17.0 + +kubectl get crds | grep crossplane +compositions.apiextensions.crossplane.io 2023-09-03T11:30:36Z +configurations.pkg.crossplane.io 2023-09-03T11:30:36Z +... +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:65: {{}} +$ cat <}} -> ```bash +cat <}} +$ cat <}} -> ```bash +cat <}} +$ kubectl get providers +NAME INSTALLED HEALTHY PACKAGE AGE +upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v0.40.0 2m +provider-aws-s3 True True xpkg.upbound.io/upbound/provider-aws-s3:v0.40.0 2m +provider-aws-sqs True True xpkg.upbound.io/upbound/provider-aws-sqs:v0.40.0 2m + +{{}} -> ```bash +kubectl get providers +NAME INSTALLED HEALTHY PACKAGE AGE +upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v0.40.0 2m +provider-aws-s3 True True xpkg.upbound.io/upbound/provider-aws-s3:v0.40.0 2m +provider-aws-sqs True True xpkg.upbound.io/upbound/provider-aws-sqs:v0.40.0 2m + +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:99: {{}} +$ cat <}} -> ```bash +cat <}} +$ cat <}} -> ```bash +cat <}} +$ cat <}} -> ```bash +cat <}} +$ kubectl get buckets +NAME READY SYNCED EXTERNAL-NAME AGE +crossplane-test-bucket True True crossplane-test-bucket 30s + +{{}} -> ```bash +kubectl get buckets +NAME READY SYNCED EXTERNAL-NAME AGE +crossplane-test-bucket True True crossplane-test-bucket 30s + +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:178: {{}} +$ awslocal s3 ls +2023-09-03 15:18:47 crossplane-test-bucket + +{{}} -> ```bash +awslocal s3 ls +2023-09-03 15:18:47 crossplane-test-bucket + +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:185: {{}} +$ cat <}} -> ```bash +cat <}} +$ kubectl get queues +NAME READY SYNCED EXTERNAL-NAME AGE +crossplane-test-queue True True http://host.docker.internal:4566/000000000000/crossplane-test-queue 40s + +{{}} -> ```bash +kubectl get queues +NAME READY SYNCED EXTERNAL-NAME AGE +crossplane-test-queue True True http://host.docker.internal:4566/000000000000/crossplane-test-queue 40s + +``` +src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md:208: {{}} +$ awslocal sqs list-queues +{ + "QueueUrls": [ + "http://localhost:4566/000000000000/crossplane-test-queue" + ] +} + +{{}} -> ```bash +awslocal sqs list-queues +{ + "QueueUrls": [ + "http://localhost:4566/000000000000/crossplane-test-queue" + ] +} + +``` +src/content/docs/aws/integrations/containers/openshift.md:82: {{< command >}} +$ export AWS_ENDPOINT_URL='' +$ awslocal s3 mb s3://my-bucket +$ awslocal sqs create-queue --queue-name my-queue +{{< /command >}} -> ```bash +export AWS_ENDPOINT_URL='' +awslocal s3 mb s3://my-bucket +awslocal sqs create-queue --queue-name my-queue +``` +src/content/docs/aws/integrations/containers/kubernetes.md:44: {{< command >}} +$ helm repo add localstack https://localstack.github.io/helm-charts +{{< /command >}} -> ```bash +helm repo add localstack https://localstack.github.io/helm-charts +``` +src/content/docs/aws/integrations/containers/kubernetes.md:92: {{< command >}} +$ helm repo add localstack-charts https://localstack.github.io/helm-charts +$ helm install my-release localstack-charts/localstack -f pro-values.yaml +{{< /command >}} -> ```bash +helm repo add localstack-charts https://localstack.github.io/helm-charts +helm install my-release localstack-charts/localstack -f pro-values.yaml +``` +src/content/docs/aws/integrations/containers/eksctl.md:42: {{< command >}} + +$ eksctl create cluster --nodes 1 --profile localstack + +{{< / command >}} -> ```bash +eksctl create cluster --nodes 1 --profile localstack +``` +src/content/docs/aws/integrations/containers/eksctl.md:50: {{< command >}} + +export AWS_CLOUDFORMATION_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_EC2_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_EKS_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_ELB_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_ELBV2_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_IAM_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_STS_ENDPOINT=http://localhost.localstack.cloud:4566 + +eksctl create cluster --nodes 1 + +{{< / command >}} -> ```bash +export AWS_CLOUDFORMATION_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_EC2_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_EKS_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_ELB_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_ELBV2_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_IAM_ENDPOINT=http://localhost.localstack.cloud:4566 +export AWS_STS_ENDPOINT=http://localhost.localstack.cloud:4566 + +eksctl create cluster --nodes 1 +``` +src/content/docs/aws/integrations/containers/eksctl.md:70: {{< command >}} +$ kubectl get nodes +{{< / command >}} -> ```bash +kubectl get nodes +``` +src/content/docs/aws/integrations/containers/rancher-desktop.md:80: {{< command >}} +# 1. Make sure there is no existing socket at /var/run/docker.sock +sudo rm -f /var/run/docker.sock + +# 2. Adjust the path if your Rancher Desktop socket is in a different location +$ sudo ln -s /var/run/rancher-desktop-lima/docker.sock /var/run/docker.sock +{{< /command >}} -> ```bash +1. Make sure there is no existing socket at /var/run/docker.sock +sudo rm -f /var/run/docker.sock + +2. Adjust the path if your Rancher Desktop socket is in a different location +sudo ln -s /var/run/rancher-desktop-lima/docker.sock /var/run/docker.sock +``` +src/content/docs/aws/integrations/containers/rancher-desktop.md:90: {{< command >}} +$ DEBUG=1 localstack start --network rancher +{{< /command >}} -> ```bash +DEBUG=1 localstack start --network rancher +``` +src/content/docs/aws/integrations/containers/rancher-desktop.md:101: {{< command >}} +$ DEBUG=1 DOCKER_CMD=nerdctl localstack start --network rancher +{{< /command >}} -> ```bash +DEBUG=1 DOCKER_CMD=nerdctl localstack start --network rancher +``` +src/content/docs/aws/integrations/containers/rancher-desktop.md:111: {{< command >}} +$ rancher-desktop settings set --docker +{{< /command >}} -> ```bash +rancher-desktop settings set --docker +``` +src/content/docs/aws/integrations/containers/rancher-desktop.md:117: {{< command >}} +$ rancher-desktop --start +{{< /command >}} -> ```bash +rancher-desktop --start +``` +src/content/docs/aws/integrations/containers/devcontainers.md:54: {{< command >}} +$ devcontainer templates apply \ + --template-id ghcr.io/localstack/devcontainer-template/localstack-dind \ + --template-args "$(cat ./options.json)" \ + --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' +{{< /command >}} -> ```bash +devcontainer templates apply \ + --template-id ghcr.io/localstack/devcontainer-template/localstack-dind \ + --template-args "$(cat ./options.json)" \ + --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' +``` +src/content/docs/aws/integrations/containers/devcontainers.md:63: {{< command >}} +$ devcontainer up --id-label project=localstack --workspace-folder . +{{< /command >}} -> ```bash +devcontainer up --id-label project=localstack --workspace-folder . +``` +src/content/docs/aws/integrations/containers/devcontainers.md:69: {{< command >}} +$ devcontainer exec --id-label project=localstack /bin/bash +{{< /command >}} -> ```bash +devcontainer exec --id-label project=localstack /bin/bash +``` +src/content/docs/aws/integrations/containers/devcontainers.md:75: {{< command >}} +vscode ➜ ~ $ localstack --version +3.6.0 +vscode ➜ ~ $ +{{< /command >}} -> ```bash +vscode ➜ ~ $ localstack --version +3.6.0 +vscode ➜ ~ $ +``` +src/content/docs/aws/integrations/containers/devcontainers.md:83: {{< command >}} +$ for container in $(docker ps -q); do \ + [[ "$(docker inspect --format '{{ index .Config.Labels "project"}}' $container)" = "localstack" ]] && \ + docker rm -f $container; \ +done +{{< /command >}} -> ```bash +for container in $(docker ps -q); do \ + [[ "$(docker inspect --format '{{ index .Config.Labels "project"}}' $container)" = "localstack" ]] && \ + docker rm -f $container; \ +done +``` +src/content/docs/aws/integrations/containers/devcontainers.md:249: {{< command >}} +$ devcontainer templates apply \ + --template-id ghcr.io/localstack/devcontainer-template/localstack-dood \ + --template-args "$(cat ./options.json)" \ + --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' +{{< /command >}} -> ```bash +devcontainer templates apply \ + --template-id ghcr.io/localstack/devcontainer-template/localstack-dood \ + --template-args "$(cat ./options.json)" \ + --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' +``` +src/content/docs/aws/integrations/containers/devcontainers.md:258: {{< command >}} +$ devcontainer up --id-label project=localstack --workspace-folder . +{{< /command >}} -> ```bash +devcontainer up --id-label project=localstack --workspace-folder . +``` +src/content/docs/aws/integrations/containers/devcontainers.md:264: {{< command >}} +$ devcontainer exec --id-label project=localstack /bin/bash +{{< /command >}} -> ```bash +devcontainer exec --id-label project=localstack /bin/bash +``` +src/content/docs/aws/integrations/containers/devcontainers.md:270: {{< command >}} +vscode ➜ ~ $ localstack --version +3.6.0 +vscode ➜ ~ $ +{{< /command >}} -> ```bash +vscode ➜ ~ $ localstack --version +3.6.0 +vscode ➜ ~ $ +``` +src/content/docs/aws/integrations/containers/devcontainers.md:278: {{< command >}} +$ docker compose \ + --project-name "$(basename $PWD)_devcontainer" \ + -f ./.devcontainer/docker-compose.yml down +{{< /command >}} -> ```bash +docker compose \ + --project-name "$(basename $PWD)_devcontainer" \ + -f ./.devcontainer/docker-compose.yml down +``` diff --git a/changelog/image_changes.log b/changelog/image_changes.log new file mode 100644 index 00000000..7079a9ef --- /dev/null +++ b/changelog/image_changes.log @@ -0,0 +1,9 @@ +src/content/docs/aws/integrations/index.md:16: {{< figure src="integrations-overview.png" width="70%" alt="Sample of supported tools" >}} -> ![Sample of supported tools](/images/aws/integrations-overview.png) +src/content/docs/aws/integrations/continuous-integration/index.mdx:21: {{< figure src="localstack-in-ci.svg" alt="An example CI/CD workflow using LocalStack" width="90%">}} -> ![An example CI/CD workflow using LocalStack](/images/aws/localstack-in-ci.svg) +src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx:104: {/* Enter test credentials on Former2 Dashboard */} {/* mdx-disabled */} -> ![Enter test credentials on Former2 Dashboard](/images/aws/former2-credentials.png) +src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx:112: {/* LocalStack endpoint toggle on Former2 Dashboard */} {/* mdx-disabled */} -> ![LocalStack endpoint toggle on Former2 Dashboard](/images/aws/former2-localstack-endpoint.png) +src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx:122: {/* S3 Console on Former2 Dashboard */} {/* mdx-disabled */} -> ![S3 Console on Former2 Dashboard](/images/aws/former2-s3.png) +src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx:128: {/* CloudFormation Output on Former2 Dashboard */} {/* mdx-disabled */} -> ![CloudFormation Output on Former2 Dashboard](/images/aws/former2-cloudformation-output.png) +src/content/docs/aws/integrations/containers/openshift.mdx:44: {/* OpenShift Developer perspective */} {/* mdx-disabled */} -> ![OpenShift Developer perspective](/images/aws/openshift-developer-view.png) +src/content/docs/aws/integrations/containers/openshift.mdx:61: {/* OpenShift Topology view */} {/* mdx-disabled */} -> ![OpenShift Topology view](/images/aws/openshift-topology-view.png) +src/content/docs/aws/integrations/containers/openshift.mdx:73: {/* LocalStack Dev Spaces Deployment */} {/* mdx-disabled */} -> ![LocalStack Dev Spaces Deployment](/images/aws/localstack-dev-spaces.png) diff --git a/public/images/aws/01_add_devcontainer_conf.png b/public/images/aws/01_add_devcontainer_conf.png new file mode 100644 index 00000000..66caa94c Binary files /dev/null and b/public/images/aws/01_add_devcontainer_conf.png differ diff --git a/public/images/aws/02_add_conf_workspace.png b/public/images/aws/02_add_conf_workspace.png new file mode 100644 index 00000000..f02c0d9f Binary files /dev/null and b/public/images/aws/02_add_conf_workspace.png differ diff --git a/public/images/aws/03_show_all_definitions.png b/public/images/aws/03_show_all_definitions.png new file mode 100644 index 00000000..46d20cf6 Binary files /dev/null and b/public/images/aws/03_show_all_definitions.png differ diff --git a/public/images/aws/04a_select_template_dind.png b/public/images/aws/04a_select_template_dind.png new file mode 100644 index 00000000..1f9f9255 Binary files /dev/null and b/public/images/aws/04a_select_template_dind.png differ diff --git a/public/images/aws/04b_select_template_dood.png b/public/images/aws/04b_select_template_dood.png new file mode 100644 index 00000000..318f67f5 Binary files /dev/null and b/public/images/aws/04b_select_template_dood.png differ diff --git a/public/images/aws/05_option_1.png b/public/images/aws/05_option_1.png new file mode 100644 index 00000000..9da9665c Binary files /dev/null and b/public/images/aws/05_option_1.png differ diff --git a/public/images/aws/06_option_2.png b/public/images/aws/06_option_2.png new file mode 100644 index 00000000..878f5ddb Binary files /dev/null and b/public/images/aws/06_option_2.png differ diff --git a/public/images/aws/07_option_3.png b/public/images/aws/07_option_3.png new file mode 100644 index 00000000..326c3061 Binary files /dev/null and b/public/images/aws/07_option_3.png differ diff --git a/public/images/aws/08_volume_option.png b/public/images/aws/08_volume_option.png new file mode 100644 index 00000000..124d06cc Binary files /dev/null and b/public/images/aws/08_volume_option.png differ diff --git a/public/images/aws/09_volume_folder.png b/public/images/aws/09_volume_folder.png new file mode 100644 index 00000000..ea99713d Binary files /dev/null and b/public/images/aws/09_volume_folder.png differ diff --git a/public/images/aws/10a_options_list_dind.png b/public/images/aws/10a_options_list_dind.png new file mode 100644 index 00000000..877e8007 Binary files /dev/null and b/public/images/aws/10a_options_list_dind.png differ diff --git a/public/images/aws/10b_options_list_dood.png b/public/images/aws/10b_options_list_dood.png new file mode 100644 index 00000000..21015ac1 Binary files /dev/null and b/public/images/aws/10b_options_list_dood.png differ diff --git a/public/images/aws/11_additional_features.png b/public/images/aws/11_additional_features.png new file mode 100644 index 00000000..9939fb7e Binary files /dev/null and b/public/images/aws/11_additional_features.png differ diff --git a/public/images/aws/12a_folder_structure_dind.png b/public/images/aws/12a_folder_structure_dind.png new file mode 100644 index 00000000..75efd93b Binary files /dev/null and b/public/images/aws/12a_folder_structure_dind.png differ diff --git a/public/images/aws/12b_folder_structure_dood.png b/public/images/aws/12b_folder_structure_dood.png new file mode 100644 index 00000000..bd16dd54 Binary files /dev/null and b/public/images/aws/12b_folder_structure_dood.png differ diff --git a/public/images/aws/account-resource-browser.png b/public/images/aws/account-resource-browser.png new file mode 100644 index 00000000..63bebf84 Binary files /dev/null and b/public/images/aws/account-resource-browser.png differ diff --git a/public/images/aws/ace.svg b/public/images/aws/ace.svg new file mode 100644 index 00000000..c9aa4063 --- /dev/null +++ b/public/images/aws/ace.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Cost-Explorer_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/acm-resource-browser.png b/public/images/aws/acm-resource-browser.png new file mode 100644 index 00000000..39b56298 Binary files /dev/null and b/public/images/aws/acm-resource-browser.png differ diff --git a/public/images/aws/acm.svg b/public/images/aws/acm.svg new file mode 100644 index 00000000..7bb5625a --- /dev/null +++ b/public/images/aws/acm.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/32/Arch_AWS-Certificate-Manager_32 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/additional-information-page.png b/public/images/aws/additional-information-page.png new file mode 100644 index 00000000..9e1cdba8 Binary files /dev/null and b/public/images/aws/additional-information-page.png differ diff --git a/public/images/aws/ads.svg b/public/images/aws/ads.svg new file mode 100644 index 00000000..7bacde14 --- /dev/null +++ b/public/images/aws/ads.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Application-Discovery-Service_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/agw.svg b/public/images/aws/agw.svg new file mode 100644 index 00000000..68627d9f --- /dev/null +++ b/public/images/aws/agw.svg @@ -0,0 +1,18 @@ + + + Icon-Architecture/64/Arch_ Amazon-API-Gateway_64 + + + + + + + + + + + + + + + diff --git a/public/images/aws/amp.svg b/public/images/aws/amp.svg new file mode 100644 index 00000000..a57ca220 --- /dev/null +++ b/public/images/aws/amp.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Amplify-Console_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/amplify-resource-browser.png b/public/images/aws/amplify-resource-browser.png new file mode 100644 index 00000000..e67f873c Binary files /dev/null and b/public/images/aws/amplify-resource-browser.png differ diff --git a/public/images/aws/android-chrome-192x192.png b/public/images/aws/android-chrome-192x192.png new file mode 100644 index 00000000..f51ac1c7 Binary files /dev/null and b/public/images/aws/android-chrome-192x192.png differ diff --git a/public/images/aws/android-chrome-512x512.png b/public/images/aws/android-chrome-512x512.png new file mode 100644 index 00000000..21a1f30c Binary files /dev/null and b/public/images/aws/android-chrome-512x512.png differ diff --git a/public/images/aws/api-gateway-resource-browser.png b/public/images/aws/api-gateway-resource-browser.png new file mode 100644 index 00000000..b27febae Binary files /dev/null and b/public/images/aws/api-gateway-resource-browser.png differ diff --git a/public/images/aws/app.svg b/public/images/aws/app.svg new file mode 100644 index 00000000..2399da50 --- /dev/null +++ b/public/images/aws/app.svg @@ -0,0 +1,20 @@ + + + + Icon-Architecture/64/Arch_AWS-AppSync_64 + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/public/images/aws/appconfig-resource-browser.png b/public/images/aws/appconfig-resource-browser.png new file mode 100644 index 00000000..db2bf58d Binary files /dev/null and b/public/images/aws/appconfig-resource-browser.png differ diff --git a/public/images/aws/appconfig.svg b/public/images/aws/appconfig.svg new file mode 100644 index 00000000..b30a6c36 --- /dev/null +++ b/public/images/aws/appconfig.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-App-Config_64 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/apple-touch-icon.png b/public/images/aws/apple-touch-icon.png new file mode 100644 index 00000000..643cc70f Binary files /dev/null and b/public/images/aws/apple-touch-icon.png differ diff --git a/public/images/aws/application-auto-scaling-resource-browser.png b/public/images/aws/application-auto-scaling-resource-browser.png new file mode 100644 index 00000000..43a7b2ef Binary files /dev/null and b/public/images/aws/application-auto-scaling-resource-browser.png differ diff --git a/public/images/aws/appsync-resource-browser.png b/public/images/aws/appsync-resource-browser.png new file mode 100644 index 00000000..2f29513a Binary files /dev/null and b/public/images/aws/appsync-resource-browser.png differ diff --git a/public/images/aws/arch-1.png b/public/images/aws/arch-1.png new file mode 100644 index 00000000..1833d942 Binary files /dev/null and b/public/images/aws/arch-1.png differ diff --git a/public/images/aws/arch-2.png b/public/images/aws/arch-2.png new file mode 100644 index 00000000..46d4e4a1 Binary files /dev/null and b/public/images/aws/arch-2.png differ diff --git a/public/images/aws/architect_logo.png b/public/images/aws/architect_logo.png new file mode 100644 index 00000000..16354d26 Binary files /dev/null and b/public/images/aws/architect_logo.png differ diff --git a/public/images/aws/architecture-diagram-test.png b/public/images/aws/architecture-diagram-test.png new file mode 100644 index 00000000..cc31318a Binary files /dev/null and b/public/images/aws/architecture-diagram-test.png differ diff --git a/public/images/aws/architecture-diagram.png b/public/images/aws/architecture-diagram.png new file mode 100644 index 00000000..94957990 Binary files /dev/null and b/public/images/aws/architecture-diagram.png differ diff --git a/public/images/aws/asc.svg b/public/images/aws/asc.svg new file mode 100644 index 00000000..d91289bd --- /dev/null +++ b/public/images/aws/asc.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Auto-Scaling_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/atf.svg b/public/images/aws/atf.svg new file mode 100644 index 00000000..7ea157f8 --- /dev/null +++ b/public/images/aws/atf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Transfer-Family_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/ath.svg b/public/images/aws/ath.svg new file mode 100644 index 00000000..e4335f51 --- /dev/null +++ b/public/images/aws/ath.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Athena_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/athena-resource-browser.png b/public/images/aws/athena-resource-browser.png new file mode 100644 index 00000000..de18024d Binary files /dev/null and b/public/images/aws/athena-resource-browser.png differ diff --git a/public/images/aws/ats.svg b/public/images/aws/ats.svg new file mode 100644 index 00000000..d6ef50b3 --- /dev/null +++ b/public/images/aws/ats.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Timestream_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/attribute-mapping.png b/public/images/aws/attribute-mapping.png new file mode 100644 index 00000000..1384ec97 Binary files /dev/null and b/public/images/aws/attribute-mapping.png differ diff --git a/public/images/aws/aws-cdk-logo.svg b/public/images/aws/aws-cdk-logo.svg new file mode 100644 index 00000000..d111ff5c --- /dev/null +++ b/public/images/aws/aws-cdk-logo.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/32/Arch_AWS-Cloud-Development-Kit_32 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/aws-cloudwatch-logs.png b/public/images/aws/aws-cloudwatch-logs.png new file mode 100644 index 00000000..02be7e1b Binary files /dev/null and b/public/images/aws/aws-cloudwatch-logs.png differ diff --git a/public/images/aws/aws-proxy-sqs-lambda-sample.png b/public/images/aws/aws-proxy-sqs-lambda-sample.png new file mode 100644 index 00000000..e462335e Binary files /dev/null and b/public/images/aws/aws-proxy-sqs-lambda-sample.png differ diff --git a/public/images/aws/aws-replicator-extension-tutorial-cover.png b/public/images/aws/aws-replicator-extension-tutorial-cover.png new file mode 100644 index 00000000..91b0b195 Binary files /dev/null and b/public/images/aws/aws-replicator-extension-tutorial-cover.png differ diff --git a/public/images/aws/aws-replicator-extension.png b/public/images/aws/aws-replicator-extension.png new file mode 100644 index 00000000..423ef47d Binary files /dev/null and b/public/images/aws/aws-replicator-extension.png differ diff --git a/public/images/aws/aws.svg b/public/images/aws/aws.svg new file mode 100644 index 00000000..57d0f3c4 --- /dev/null +++ b/public/images/aws/aws.svg @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/azure-step-1.png b/public/images/aws/azure-step-1.png new file mode 100644 index 00000000..970bf2d5 Binary files /dev/null and b/public/images/aws/azure-step-1.png differ diff --git a/public/images/aws/azure-step-2.png b/public/images/aws/azure-step-2.png new file mode 100644 index 00000000..b97682cb Binary files /dev/null and b/public/images/aws/azure-step-2.png differ diff --git a/public/images/aws/azure-step-3.png b/public/images/aws/azure-step-3.png new file mode 100644 index 00000000..54c83151 Binary files /dev/null and b/public/images/aws/azure-step-3.png differ diff --git a/public/images/aws/azure-step-4.png b/public/images/aws/azure-step-4.png new file mode 100644 index 00000000..cf2c1755 Binary files /dev/null and b/public/images/aws/azure-step-4.png differ diff --git a/public/images/aws/azure.svg b/public/images/aws/azure.svg new file mode 100644 index 00000000..84dfc0fc --- /dev/null +++ b/public/images/aws/azure.svg @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/public/images/aws/backup-resource-browser.png b/public/images/aws/backup-resource-browser.png new file mode 100644 index 00000000..c1a5a9a9 Binary files /dev/null and b/public/images/aws/backup-resource-browser.png differ diff --git a/public/images/aws/bak.svg b/public/images/aws/bak.svg new file mode 100644 index 00000000..edb5eb36 --- /dev/null +++ b/public/images/aws/bak.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Backup_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/banner.png b/public/images/aws/banner.png new file mode 100644 index 00000000..e7b16f5a Binary files /dev/null and b/public/images/aws/banner.png differ diff --git a/public/images/aws/bat.svg b/public/images/aws/bat.svg new file mode 100644 index 00000000..dca1dabc --- /dev/null +++ b/public/images/aws/bat.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Batch_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/bob-alice-cloud-pod-collab.png b/public/images/aws/bob-alice-cloud-pod-collab.png new file mode 100644 index 00000000..8a147f93 Binary files /dev/null and b/public/images/aws/bob-alice-cloud-pod-collab.png differ diff --git a/public/images/aws/carol-bob-alice-cloud-pod-collab.png b/public/images/aws/carol-bob-alice-cloud-pod-collab.png new file mode 100644 index 00000000..81c11273 Binary files /dev/null and b/public/images/aws/carol-bob-alice-cloud-pod-collab.png differ diff --git a/public/images/aws/cf.svg b/public/images/aws/cf.svg new file mode 100644 index 00000000..d32cfb23 --- /dev/null +++ b/public/images/aws/cf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Config_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/cfr.svg b/public/images/aws/cfr.svg new file mode 100644 index 00000000..9eb56399 --- /dev/null +++ b/public/images/aws/cfr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-CloudFront_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/cgn.svg b/public/images/aws/cgn.svg new file mode 100644 index 00000000..7a767563 --- /dev/null +++ b/public/images/aws/cgn.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Cognito_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/ci-project-runs.png b/public/images/aws/ci-project-runs.png new file mode 100644 index 00000000..0f40b696 Binary files /dev/null and b/public/images/aws/ci-project-runs.png differ diff --git a/public/images/aws/ci-variable.png b/public/images/aws/ci-variable.png new file mode 100644 index 00000000..1a2b1e23 Binary files /dev/null and b/public/images/aws/ci-variable.png differ diff --git a/public/images/aws/ci.svg b/public/images/aws/ci.svg new file mode 100644 index 00000000..b79be112 --- /dev/null +++ b/public/images/aws/ci.svg @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/clf.svg b/public/images/aws/clf.svg new file mode 100644 index 00000000..b1f264ed --- /dev/null +++ b/public/images/aws/clf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-CloudFormation_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/cloud-pod-collab.png b/public/images/aws/cloud-pod-collab.png new file mode 100644 index 00000000..94957990 Binary files /dev/null and b/public/images/aws/cloud-pod-collab.png differ diff --git a/public/images/aws/cloud-pods-state-merge-mechanisms.png b/public/images/aws/cloud-pods-state-merge-mechanisms.png new file mode 100644 index 00000000..8fc3cdd3 Binary files /dev/null and b/public/images/aws/cloud-pods-state-merge-mechanisms.png differ diff --git a/public/images/aws/cloudformation-resource-browser.png b/public/images/aws/cloudformation-resource-browser.png new file mode 100644 index 00000000..ec9d66e0 Binary files /dev/null and b/public/images/aws/cloudformation-resource-browser.png differ diff --git a/public/images/aws/cloudfront-resource-browser.png b/public/images/aws/cloudfront-resource-browser.png new file mode 100644 index 00000000..a2ea9607 Binary files /dev/null and b/public/images/aws/cloudfront-resource-browser.png differ diff --git a/public/images/aws/cloudtrail-resource-browser.png b/public/images/aws/cloudtrail-resource-browser.png new file mode 100644 index 00000000..33305bde Binary files /dev/null and b/public/images/aws/cloudtrail-resource-browser.png differ diff --git a/public/images/aws/cloudwatch-log-groups-resource-browser.png b/public/images/aws/cloudwatch-log-groups-resource-browser.png new file mode 100644 index 00000000..b7bafaf6 Binary files /dev/null and b/public/images/aws/cloudwatch-log-groups-resource-browser.png differ diff --git a/public/images/aws/cloudwatch-logs.png b/public/images/aws/cloudwatch-logs.png new file mode 100644 index 00000000..13c36893 Binary files /dev/null and b/public/images/aws/cloudwatch-logs.png differ diff --git a/public/images/aws/cloudwatch-metrics-resource-browser.png b/public/images/aws/cloudwatch-metrics-resource-browser.png new file mode 100644 index 00000000..af7dede9 Binary files /dev/null and b/public/images/aws/cloudwatch-metrics-resource-browser.png differ diff --git a/public/images/aws/codecommit-resource-browser.png b/public/images/aws/codecommit-resource-browser.png new file mode 100644 index 00000000..0c930843 Binary files /dev/null and b/public/images/aws/codecommit-resource-browser.png differ diff --git a/public/images/aws/coffee-app-diagram.png b/public/images/aws/coffee-app-diagram.png new file mode 100644 index 00000000..7eb524d5 Binary files /dev/null and b/public/images/aws/coffee-app-diagram.png differ diff --git a/public/images/aws/cognito-resource-browser.png b/public/images/aws/cognito-resource-browser.png new file mode 100644 index 00000000..5e02229f Binary files /dev/null and b/public/images/aws/cognito-resource-browser.png differ diff --git a/public/images/aws/cognitoLogin.png b/public/images/aws/cognitoLogin.png new file mode 100644 index 00000000..1bac25a9 Binary files /dev/null and b/public/images/aws/cognitoLogin.png differ diff --git a/public/images/aws/collab-debugging-cloud-pod.png b/public/images/aws/collab-debugging-cloud-pod.png new file mode 100644 index 00000000..3a923480 Binary files /dev/null and b/public/images/aws/collab-debugging-cloud-pod.png differ diff --git a/public/images/aws/com.svg b/public/images/aws/com.svg new file mode 100644 index 00000000..811f6f75 --- /dev/null +++ b/public/images/aws/com.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-CodeCommit_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/copilot-logo.svg b/public/images/aws/copilot-logo.svg new file mode 100644 index 00000000..a51f3883 --- /dev/null +++ b/public/images/aws/copilot-logo.svg @@ -0,0 +1,7 @@ + + + Icon-Resource/Containers/Res_Amazon-ECS_Copilot-CLI_48_Light + + + + \ No newline at end of file diff --git a/public/images/aws/cost-explorer-resource-browser.png b/public/images/aws/cost-explorer-resource-browser.png new file mode 100644 index 00000000..8da07399 Binary files /dev/null and b/public/images/aws/cost-explorer-resource-browser.png differ diff --git a/public/images/aws/create-new-project.png b/public/images/aws/create-new-project.png new file mode 100644 index 00000000..2ed7c394 Binary files /dev/null and b/public/images/aws/create-new-project.png differ diff --git a/public/images/aws/create-runner-1.png b/public/images/aws/create-runner-1.png new file mode 100644 index 00000000..07b59f11 Binary files /dev/null and b/public/images/aws/create-runner-1.png differ diff --git a/public/images/aws/create-runner-2.png b/public/images/aws/create-runner-2.png new file mode 100644 index 00000000..14ede0c5 Binary files /dev/null and b/public/images/aws/create-runner-2.png differ diff --git a/public/images/aws/ctr.svg b/public/images/aws/ctr.svg new file mode 100644 index 00000000..27eaf582 --- /dev/null +++ b/public/images/aws/ctr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Cloud-Trail_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/customer-portal.png b/public/images/aws/customer-portal.png new file mode 100644 index 00000000..654e9c9b Binary files /dev/null and b/public/images/aws/customer-portal.png differ diff --git a/public/images/aws/cwl.svg b/public/images/aws/cwl.svg new file mode 100644 index 00000000..d6129fb8 --- /dev/null +++ b/public/images/aws/cwl.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-CloudWatch_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/dcdb.svg b/public/images/aws/dcdb.svg new file mode 100644 index 00000000..07d981fd --- /dev/null +++ b/public/images/aws/dcdb.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-DocumentDB_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/ddb.svg b/public/images/aws/ddb.svg new file mode 100644 index 00000000..3c710c34 --- /dev/null +++ b/public/images/aws/ddb.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-DynamoDB_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/dms-resource-browser.png b/public/images/aws/dms-resource-browser.png new file mode 100644 index 00000000..b2f6b198 Binary files /dev/null and b/public/images/aws/dms-resource-browser.png differ diff --git a/public/images/aws/dms.svg b/public/images/aws/dms.svg new file mode 100644 index 00000000..3b12575e --- /dev/null +++ b/public/images/aws/dms.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Database-Migration_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/docdb-resource-browser.png b/public/images/aws/docdb-resource-browser.png new file mode 100644 index 00000000..570ea5e3 Binary files /dev/null and b/public/images/aws/docdb-resource-browser.png differ diff --git a/public/images/aws/docker.svg b/public/images/aws/docker.svg new file mode 100644 index 00000000..06e81cf7 --- /dev/null +++ b/public/images/aws/docker.svg @@ -0,0 +1 @@ + diff --git a/public/images/aws/documentdb.svg b/public/images/aws/documentdb.svg new file mode 100644 index 00000000..1b1f7374 --- /dev/null +++ b/public/images/aws/documentdb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/aws/dynamodb-resource-browser.png b/public/images/aws/dynamodb-resource-browser.png new file mode 100644 index 00000000..5855a8cc Binary files /dev/null and b/public/images/aws/dynamodb-resource-browser.png differ diff --git a/public/images/aws/ebr.svg b/public/images/aws/ebr.svg new file mode 100644 index 00000000..8c8bda58 --- /dev/null +++ b/public/images/aws/ebr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-EventBridge_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/ebs.svg b/public/images/aws/ebs.svg new file mode 100644 index 00000000..91824452 --- /dev/null +++ b/public/images/aws/ebs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Elastic-Beanstalk_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/ec2-resource-browser.png b/public/images/aws/ec2-resource-browser.png new file mode 100644 index 00000000..2a5c399c Binary files /dev/null and b/public/images/aws/ec2-resource-browser.png differ diff --git a/public/images/aws/ec2.svg b/public/images/aws/ec2.svg new file mode 100644 index 00000000..29ee3b2f --- /dev/null +++ b/public/images/aws/ec2.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-EC2_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/ecr-resource-browser.png b/public/images/aws/ecr-resource-browser.png new file mode 100644 index 00000000..eaf04803 Binary files /dev/null and b/public/images/aws/ecr-resource-browser.png differ diff --git a/public/images/aws/ecr.svg b/public/images/aws/ecr.svg new file mode 100644 index 00000000..66bb3ec5 --- /dev/null +++ b/public/images/aws/ecr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Elastic-Container-Registry_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/ecs-ecr-container-app-featured-image.png b/public/images/aws/ecs-ecr-container-app-featured-image.png new file mode 100644 index 00000000..8cb385b6 Binary files /dev/null and b/public/images/aws/ecs-ecr-container-app-featured-image.png differ diff --git a/public/images/aws/ecs-resource-browser.png b/public/images/aws/ecs-resource-browser.png new file mode 100644 index 00000000..060572ec Binary files /dev/null and b/public/images/aws/ecs-resource-browser.png differ diff --git a/public/images/aws/ecs.svg b/public/images/aws/ecs.svg new file mode 100644 index 00000000..6fa39064 --- /dev/null +++ b/public/images/aws/ecs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/aws/efs.svg b/public/images/aws/efs.svg new file mode 100644 index 00000000..e300b2dd --- /dev/null +++ b/public/images/aws/efs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Elastic-File-System_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/eks-resource-browser.png b/public/images/aws/eks-resource-browser.png new file mode 100644 index 00000000..360acfaf Binary files /dev/null and b/public/images/aws/eks-resource-browser.png differ diff --git a/public/images/aws/eks.svg b/public/images/aws/eks.svg new file mode 100644 index 00000000..cf6040ae --- /dev/null +++ b/public/images/aws/eks.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Elastic-Container-Kubernetes_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/elasticache-resource-browser-create.png b/public/images/aws/elasticache-resource-browser-create.png new file mode 100644 index 00000000..00ccd8ef Binary files /dev/null and b/public/images/aws/elasticache-resource-browser-create.png differ diff --git a/public/images/aws/elasticache-resource-browser-list.png b/public/images/aws/elasticache-resource-browser-list.png new file mode 100644 index 00000000..ae4445bd Binary files /dev/null and b/public/images/aws/elasticache-resource-browser-list.png differ diff --git a/public/images/aws/elasticache-resource-browser-show.png b/public/images/aws/elasticache-resource-browser-show.png new file mode 100644 index 00000000..d8c202ca Binary files /dev/null and b/public/images/aws/elasticache-resource-browser-show.png differ diff --git a/public/images/aws/elb-load-balancing-featured-image.png b/public/images/aws/elb-load-balancing-featured-image.png new file mode 100644 index 00000000..51b73aaa Binary files /dev/null and b/public/images/aws/elb-load-balancing-featured-image.png differ diff --git a/public/images/aws/elb.svg b/public/images/aws/elb.svg new file mode 100644 index 00000000..179809ad --- /dev/null +++ b/public/images/aws/elb.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/32/Arch_Elastic-Load-Balancing_32 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/elc.svg b/public/images/aws/elc.svg new file mode 100644 index 00000000..6abb029e --- /dev/null +++ b/public/images/aws/elc.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-ElastiCache_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/emr.svg b/public/images/aws/emr.svg new file mode 100644 index 00000000..58dc31cd --- /dev/null +++ b/public/images/aws/emr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-EMR_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/enabled-aws-replicator-extension.png b/public/images/aws/enabled-aws-replicator-extension.png new file mode 100644 index 00000000..98b30081 Binary files /dev/null and b/public/images/aws/enabled-aws-replicator-extension.png differ diff --git a/public/images/aws/ephemeral-application-previews-banner.png b/public/images/aws/ephemeral-application-previews-banner.png new file mode 100644 index 00000000..b1d05aac Binary files /dev/null and b/public/images/aws/ephemeral-application-previews-banner.png differ diff --git a/public/images/aws/es.svg b/public/images/aws/es.svg new file mode 100644 index 00000000..fa75b37d --- /dev/null +++ b/public/images/aws/es.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Elasticsearch-Service_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/extension-installer.png b/public/images/aws/extension-installer.png new file mode 100644 index 00000000..d5e1b5e8 Binary files /dev/null and b/public/images/aws/extension-installer.png differ diff --git a/public/images/aws/extensions-library-management.png b/public/images/aws/extensions-library-management.png new file mode 100644 index 00000000..0682b029 Binary files /dev/null and b/public/images/aws/extensions-library-management.png differ diff --git a/public/images/aws/extensions-library-ui.png b/public/images/aws/extensions-library-ui.png new file mode 100644 index 00000000..a9f653d9 Binary files /dev/null and b/public/images/aws/extensions-library-ui.png differ diff --git a/public/images/aws/extensions-library.png b/public/images/aws/extensions-library.png new file mode 100644 index 00000000..907ff688 Binary files /dev/null and b/public/images/aws/extensions-library.png differ diff --git a/public/images/aws/extensions-manager.png b/public/images/aws/extensions-manager.png new file mode 100644 index 00000000..463ed4c7 Binary files /dev/null and b/public/images/aws/extensions-manager.png differ diff --git a/public/images/aws/fargate.svg b/public/images/aws/fargate.svg new file mode 100644 index 00000000..5408a774 --- /dev/null +++ b/public/images/aws/fargate.svg @@ -0,0 +1,20 @@ + + + + Icon-Architecture/64/Arch_AWS-Fargate_64 + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/public/images/aws/favicon-16x16.png b/public/images/aws/favicon-16x16.png new file mode 100644 index 00000000..1fae26cc Binary files /dev/null and b/public/images/aws/favicon-16x16.png differ diff --git a/public/images/aws/favicon-32x32.png b/public/images/aws/favicon-32x32.png new file mode 100644 index 00000000..edeba977 Binary files /dev/null and b/public/images/aws/favicon-32x32.png differ diff --git a/public/images/aws/favicon.png b/public/images/aws/favicon.png new file mode 100644 index 00000000..1fae26cc Binary files /dev/null and b/public/images/aws/favicon.png differ diff --git a/public/images/aws/fho.svg b/public/images/aws/fho.svg new file mode 100644 index 00000000..958b25a8 --- /dev/null +++ b/public/images/aws/fho.svg @@ -0,0 +1,20 @@ + + + + Icon-Architecture/64/Arch_Amazon-Kinesis-Firehose_64 + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/public/images/aws/file-a-support-ticket.png b/public/images/aws/file-a-support-ticket.png new file mode 100644 index 00000000..1c849f04 Binary files /dev/null and b/public/images/aws/file-a-support-ticket.png differ diff --git a/public/images/aws/fis.svg b/public/images/aws/fis.svg new file mode 100644 index 00000000..880a2618 --- /dev/null +++ b/public/images/aws/fis.svg @@ -0,0 +1,18 @@ + + + Icon-Architecture/16/Arch_AWS-Valkyrie_16 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/former2-cloudformation-output.png b/public/images/aws/former2-cloudformation-output.png new file mode 100644 index 00000000..53989184 Binary files /dev/null and b/public/images/aws/former2-cloudformation-output.png differ diff --git a/public/images/aws/former2-credentials.png b/public/images/aws/former2-credentials.png new file mode 100644 index 00000000..b605901c Binary files /dev/null and b/public/images/aws/former2-credentials.png differ diff --git a/public/images/aws/former2-localstack-endpoint.png b/public/images/aws/former2-localstack-endpoint.png new file mode 100644 index 00000000..16734562 Binary files /dev/null and b/public/images/aws/former2-localstack-endpoint.png differ diff --git a/public/images/aws/former2-s3.png b/public/images/aws/former2-s3.png new file mode 100644 index 00000000..308ec1e1 Binary files /dev/null and b/public/images/aws/former2-s3.png differ diff --git a/public/images/aws/github-action-pr-preview-comment.png b/public/images/aws/github-action-pr-preview-comment.png new file mode 100644 index 00000000..aa1e0745 Binary files /dev/null and b/public/images/aws/github-action-pr-preview-comment.png differ diff --git a/public/images/aws/gitlab-architecture.png b/public/images/aws/gitlab-architecture.png new file mode 100644 index 00000000..e9d3609f Binary files /dev/null and b/public/images/aws/gitlab-architecture.png differ diff --git a/public/images/aws/gitlab-ci-diagram.png b/public/images/aws/gitlab-ci-diagram.png new file mode 100644 index 00000000..67f10502 Binary files /dev/null and b/public/images/aws/gitlab-ci-diagram.png differ diff --git a/public/images/aws/gitpod_logo.png b/public/images/aws/gitpod_logo.png new file mode 100644 index 00000000..6329c5e2 Binary files /dev/null and b/public/images/aws/gitpod_logo.png differ diff --git a/public/images/aws/glc.svg b/public/images/aws/glc.svg new file mode 100644 index 00000000..16b7b0a5 --- /dev/null +++ b/public/images/aws/glc.svg @@ -0,0 +1,18 @@ + + + Icon-Architecture/64/Arch_Amazon-Glacier_64 + + + + + + + + + + + + + + + diff --git a/public/images/aws/glu.svg b/public/images/aws/glu.svg new file mode 100644 index 00000000..ff2f5258 --- /dev/null +++ b/public/images/aws/glu.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Glue_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/glue-resource-browser.png b/public/images/aws/glue-resource-browser.png new file mode 100644 index 00000000..643348b8 Binary files /dev/null and b/public/images/aws/glue-resource-browser.png differ diff --git a/public/images/aws/hashnode.svg b/public/images/aws/hashnode.svg new file mode 100644 index 00000000..31635351 --- /dev/null +++ b/public/images/aws/hashnode.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/images/aws/hot-reload-lambda-web-app.png b/public/images/aws/hot-reload-lambda-web-app.png new file mode 100644 index 00000000..9dc5105e Binary files /dev/null and b/public/images/aws/hot-reload-lambda-web-app.png differ diff --git a/public/images/aws/iam-policy-stream-dashboard.png b/public/images/aws/iam-policy-stream-dashboard.png new file mode 100644 index 00000000..a2e562a9 Binary files /dev/null and b/public/images/aws/iam-policy-stream-dashboard.png differ diff --git a/public/images/aws/iam-policy-stream-no-violations.png b/public/images/aws/iam-policy-stream-no-violations.png new file mode 100644 index 00000000..1c0a4e4d Binary files /dev/null and b/public/images/aws/iam-policy-stream-no-violations.png differ diff --git a/public/images/aws/iam-policy-stream-sqs-policy.png b/public/images/aws/iam-policy-stream-sqs-policy.png new file mode 100644 index 00000000..7ce9e165 Binary files /dev/null and b/public/images/aws/iam-policy-stream-sqs-policy.png differ diff --git a/public/images/aws/iam-policy-stream-violation.png b/public/images/aws/iam-policy-stream-violation.png new file mode 100644 index 00000000..c34874c0 Binary files /dev/null and b/public/images/aws/iam-policy-stream-violation.png differ diff --git a/public/images/aws/iam-policy-stream.png b/public/images/aws/iam-policy-stream.png new file mode 100644 index 00000000..55aeaaa7 Binary files /dev/null and b/public/images/aws/iam-policy-stream.png differ diff --git a/public/images/aws/iam-resource-browser.png b/public/images/aws/iam-resource-browser.png new file mode 100644 index 00000000..d8069e6d Binary files /dev/null and b/public/images/aws/iam-resource-browser.png differ diff --git a/public/images/aws/iam.svg b/public/images/aws/iam.svg new file mode 100644 index 00000000..417c66a6 --- /dev/null +++ b/public/images/aws/iam.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Identity-and-Access-Management_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/icons-new.svg b/public/images/aws/icons-new.svg new file mode 100644 index 00000000..356e4ee7 --- /dev/null +++ b/public/images/aws/icons-new.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/inf.svg b/public/images/aws/inf.svg new file mode 100644 index 00000000..e8a29a38 --- /dev/null +++ b/public/images/aws/inf.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/install-extensions.png b/public/images/aws/install-extensions.png new file mode 100644 index 00000000..be3c9203 Binary files /dev/null and b/public/images/aws/install-extensions.png differ diff --git a/public/images/aws/installing-aws-replicator-extensions.png b/public/images/aws/installing-aws-replicator-extensions.png new file mode 100644 index 00000000..9fa66af1 Binary files /dev/null and b/public/images/aws/installing-aws-replicator-extensions.png differ diff --git a/public/images/aws/integrations-overview.png b/public/images/aws/integrations-overview.png new file mode 100644 index 00000000..5d9bbed2 Binary files /dev/null and b/public/images/aws/integrations-overview.png differ diff --git a/public/images/aws/integrations.svg b/public/images/aws/integrations.svg new file mode 100644 index 00000000..44975899 --- /dev/null +++ b/public/images/aws/integrations.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/inteliji-debugging-jvm-1.png b/public/images/aws/inteliji-debugging-jvm-1.png new file mode 100644 index 00000000..ff9862e4 Binary files /dev/null and b/public/images/aws/inteliji-debugging-jvm-1.png differ diff --git a/public/images/aws/inteliji-debugging-jvm-2.png b/public/images/aws/inteliji-debugging-jvm-2.png new file mode 100644 index 00000000..cee133d2 Binary files /dev/null and b/public/images/aws/inteliji-debugging-jvm-2.png differ diff --git a/public/images/aws/iot.svg b/public/images/aws/iot.svg new file mode 100644 index 00000000..25e637c0 --- /dev/null +++ b/public/images/aws/iot.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-IoT-Core_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/java-notification-app-featured-image.png b/public/images/aws/java-notification-app-featured-image.png new file mode 100644 index 00000000..f55e25ea Binary files /dev/null and b/public/images/aws/java-notification-app-featured-image.png differ diff --git a/public/images/aws/kfk.svg b/public/images/aws/kfk.svg new file mode 100644 index 00000000..3e08751a --- /dev/null +++ b/public/images/aws/kfk.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Managed-Streaming-for-Kafka_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/kinesis-resource-browser.png b/public/images/aws/kinesis-resource-browser.png new file mode 100644 index 00000000..a607ad5c Binary files /dev/null and b/public/images/aws/kinesis-resource-browser.png differ diff --git a/public/images/aws/kms-resource-browser.png b/public/images/aws/kms-resource-browser.png new file mode 100644 index 00000000..03e0b3bc Binary files /dev/null and b/public/images/aws/kms-resource-browser.png differ diff --git a/public/images/aws/kms.svg b/public/images/aws/kms.svg new file mode 100644 index 00000000..022811ef --- /dev/null +++ b/public/images/aws/kms.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Key-Management-Services_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/kns.svg b/public/images/aws/kns.svg new file mode 100644 index 00000000..d59c5bb1 --- /dev/null +++ b/public/images/aws/kns.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Kinesis_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/kubernetes.png b/public/images/aws/kubernetes.png new file mode 100644 index 00000000..0ebabf71 Binary files /dev/null and b/public/images/aws/kubernetes.png differ diff --git a/public/images/aws/lambda-ecr-container-images-featured-image.png b/public/images/aws/lambda-ecr-container-images-featured-image.png new file mode 100644 index 00000000..7a620299 Binary files /dev/null and b/public/images/aws/lambda-ecr-container-images-featured-image.png differ diff --git a/public/images/aws/lambda-resource-browser.png b/public/images/aws/lambda-resource-browser.png new file mode 100644 index 00000000..fe9a0d7b Binary files /dev/null and b/public/images/aws/lambda-resource-browser.png differ diff --git a/public/images/aws/lambda.svg b/public/images/aws/lambda.svg new file mode 100644 index 00000000..f3eb7132 --- /dev/null +++ b/public/images/aws/lambda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/aws/lf.svg b/public/images/aws/lf.svg new file mode 100644 index 00000000..9e88bd07 --- /dev/null +++ b/public/images/aws/lf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Lake-Formation_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/lmb.svg b/public/images/aws/lmb.svg new file mode 100644 index 00000000..ebadb498 --- /dev/null +++ b/public/images/aws/lmb.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Lambda_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/localstack-ci-run-details.png b/public/images/aws/localstack-ci-run-details.png new file mode 100644 index 00000000..1cae2ce1 Binary files /dev/null and b/public/images/aws/localstack-ci-run-details.png differ diff --git a/public/images/aws/localstack-cloudformation-local-user-interface.png b/public/images/aws/localstack-cloudformation-local-user-interface.png new file mode 100644 index 00000000..8865d764 Binary files /dev/null and b/public/images/aws/localstack-cloudformation-local-user-interface.png differ diff --git a/public/images/aws/localstack-dev-spaces.png b/public/images/aws/localstack-dev-spaces.png new file mode 100644 index 00000000..f76ba49c Binary files /dev/null and b/public/images/aws/localstack-dev-spaces.png differ diff --git a/public/images/aws/localstack-docker-extension-configuration-profile.png b/public/images/aws/localstack-docker-extension-configuration-profile.png new file mode 100644 index 00000000..a9623828 Binary files /dev/null and b/public/images/aws/localstack-docker-extension-configuration-profile.png differ diff --git a/public/images/aws/localstack-docker-extension-logs.png b/public/images/aws/localstack-docker-extension-logs.png new file mode 100644 index 00000000..fe4d7790 Binary files /dev/null and b/public/images/aws/localstack-docker-extension-logs.png differ diff --git a/public/images/aws/localstack-docker-extension-marketplace.png b/public/images/aws/localstack-docker-extension-marketplace.png new file mode 100644 index 00000000..d280addd Binary files /dev/null and b/public/images/aws/localstack-docker-extension-marketplace.png differ diff --git a/public/images/aws/localstack-docker-extension-mount-point.png b/public/images/aws/localstack-docker-extension-mount-point.png new file mode 100644 index 00000000..4efc01c8 Binary files /dev/null and b/public/images/aws/localstack-docker-extension-mount-point.png differ diff --git a/public/images/aws/localstack-docker-extension-preferences.png b/public/images/aws/localstack-docker-extension-preferences.png new file mode 100644 index 00000000..734fa73b Binary files /dev/null and b/public/images/aws/localstack-docker-extension-preferences.png differ diff --git a/public/images/aws/localstack-docker-extension-start.png b/public/images/aws/localstack-docker-extension-start.png new file mode 100644 index 00000000..53106894 Binary files /dev/null and b/public/images/aws/localstack-docker-extension-start.png differ diff --git a/public/images/aws/localstack-docker-extension.png b/public/images/aws/localstack-docker-extension.png new file mode 100644 index 00000000..26639f59 Binary files /dev/null and b/public/images/aws/localstack-docker-extension.png differ diff --git a/public/images/aws/localstack-in-ci.svg b/public/images/aws/localstack-in-ci.svg new file mode 100644 index 00000000..d0230b0f --- /dev/null +++ b/public/images/aws/localstack-in-ci.svg @@ -0,0 +1,4 @@ + + + +
CI Runner
CI Runner
Tests
Tests
CD
Pipeline
CD...
Version
Control
Version...
Application
Application
configure
configure
CI
Workflow
CI...
push
push
push
push
Analytics
Analytics
Test report
Test report
LocalStack
LocalStack
Services
Services
...
...
preseed
state
preseed...
IaC
IaC
Cloud Pods
Cloud Pods
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/public/images/aws/localstack-setting-sso.png b/public/images/aws/localstack-setting-sso.png new file mode 100644 index 00000000..12499ba0 Binary files /dev/null and b/public/images/aws/localstack-setting-sso.png differ diff --git a/public/images/aws/localstack.svg b/public/images/aws/localstack.svg new file mode 100644 index 00000000..739d97e1 --- /dev/null +++ b/public/images/aws/localstack.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/logo-crossplane.svg b/public/images/aws/logo-crossplane.svg new file mode 100644 index 00000000..3af90369 --- /dev/null +++ b/public/images/aws/logo-crossplane.svg @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/logo.svg b/public/images/aws/logo.svg new file mode 100644 index 00000000..0222fc41 --- /dev/null +++ b/public/images/aws/logo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/logs-resource-browser.png b/public/images/aws/logs-resource-browser.png new file mode 100644 index 00000000..2e017740 Binary files /dev/null and b/public/images/aws/logs-resource-browser.png differ diff --git a/public/images/aws/ls-gitlab-testcontainers.png b/public/images/aws/ls-gitlab-testcontainers.png new file mode 100644 index 00000000..5a3521cd Binary files /dev/null and b/public/images/aws/ls-gitlab-testcontainers.png differ diff --git a/public/images/aws/m1-trouble-1.png b/public/images/aws/m1-trouble-1.png new file mode 100644 index 00000000..b9f1c2cd Binary files /dev/null and b/public/images/aws/m1-trouble-1.png differ diff --git a/public/images/aws/mailhog.png b/public/images/aws/mailhog.png new file mode 100644 index 00000000..206da6c3 Binary files /dev/null and b/public/images/aws/mailhog.png differ diff --git a/public/images/aws/mq-resource-browser.png b/public/images/aws/mq-resource-browser.png new file mode 100644 index 00000000..9572f9f7 Binary files /dev/null and b/public/images/aws/mq-resource-browser.png differ diff --git a/public/images/aws/mq.svg b/public/images/aws/mq.svg new file mode 100644 index 00000000..ee3e0bf0 --- /dev/null +++ b/public/images/aws/mq.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-MQ_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/ms.svg b/public/images/aws/ms.svg new file mode 100644 index 00000000..eafbc9bb --- /dev/null +++ b/public/images/aws/ms.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Elemental-MediaStore_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/msk-resource-browser.png b/public/images/aws/msk-resource-browser.png new file mode 100644 index 00000000..b495de8f Binary files /dev/null and b/public/images/aws/msk-resource-browser.png differ diff --git a/public/images/aws/mwaa-resource-browser.png b/public/images/aws/mwaa-resource-browser.png new file mode 100644 index 00000000..830309f7 Binary files /dev/null and b/public/images/aws/mwaa-resource-browser.png differ diff --git a/public/images/aws/mwaa.svg b/public/images/aws/mwaa.svg new file mode 100644 index 00000000..ffa9b0bc --- /dev/null +++ b/public/images/aws/mwaa.svg @@ -0,0 +1,18 @@ + + + Icon-Architecture/16/Arch_CN-Pinwheel_16 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/neptune-resource-browser.png b/public/images/aws/neptune-resource-browser.png new file mode 100644 index 00000000..ed2dcaec Binary files /dev/null and b/public/images/aws/neptune-resource-browser.png differ diff --git a/public/images/aws/npt.svg b/public/images/aws/npt.svg new file mode 100644 index 00000000..208f5bc3 --- /dev/null +++ b/public/images/aws/npt.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Neptune_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/oidc-sso.png b/public/images/aws/oidc-sso.png new file mode 100644 index 00000000..a7c79191 Binary files /dev/null and b/public/images/aws/oidc-sso.png differ diff --git a/public/images/aws/opensearch-resource-browser.png b/public/images/aws/opensearch-resource-browser.png new file mode 100644 index 00000000..374ff114 Binary files /dev/null and b/public/images/aws/opensearch-resource-browser.png differ diff --git a/public/images/aws/openshift-developer-view.png b/public/images/aws/openshift-developer-view.png new file mode 100644 index 00000000..6cead461 Binary files /dev/null and b/public/images/aws/openshift-developer-view.png differ diff --git a/public/images/aws/openshift-topology-view.png b/public/images/aws/openshift-topology-view.png new file mode 100644 index 00000000..007c2cbf Binary files /dev/null and b/public/images/aws/openshift-topology-view.png differ diff --git a/public/images/aws/org.svg b/public/images/aws/org.svg new file mode 100644 index 00000000..2527b463 --- /dev/null +++ b/public/images/aws/org.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Organizations_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/pipeline-run.png b/public/images/aws/pipeline-run.png new file mode 100644 index 00000000..56a7c574 Binary files /dev/null and b/public/images/aws/pipeline-run.png differ diff --git a/public/images/aws/pipes-resource-browser.png b/public/images/aws/pipes-resource-browser.png new file mode 100644 index 00000000..4cb95e54 Binary files /dev/null and b/public/images/aws/pipes-resource-browser.png differ diff --git a/public/images/aws/pro-badge.png b/public/images/aws/pro-badge.png new file mode 100644 index 00000000..ce0da7b0 Binary files /dev/null and b/public/images/aws/pro-badge.png differ diff --git a/public/images/aws/project-runners-section.png b/public/images/aws/project-runners-section.png new file mode 100644 index 00000000..6c7b2409 Binary files /dev/null and b/public/images/aws/project-runners-section.png differ diff --git a/public/images/aws/pycharm_lambda_debugging.png b/public/images/aws/pycharm_lambda_debugging.png new file mode 100644 index 00000000..64416a3a Binary files /dev/null and b/public/images/aws/pycharm_lambda_debugging.png differ diff --git a/public/images/aws/pycharm_remote_debugging.png b/public/images/aws/pycharm_remote_debugging.png new file mode 100644 index 00000000..54ef4578 Binary files /dev/null and b/public/images/aws/pycharm_remote_debugging.png differ diff --git a/public/images/aws/qld.svg b/public/images/aws/qld.svg new file mode 100644 index 00000000..55af2330 --- /dev/null +++ b/public/images/aws/qld.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Quantum-Ledger-Database_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/qldb-resource-browser.png b/public/images/aws/qldb-resource-browser.png new file mode 100644 index 00000000..d80b97d2 Binary files /dev/null and b/public/images/aws/qldb-resource-browser.png differ diff --git a/public/images/aws/r53.svg b/public/images/aws/r53.svg new file mode 100644 index 00000000..2460f33a --- /dev/null +++ b/public/images/aws/r53.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Route-53_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/rds-resource-browser.png b/public/images/aws/rds-resource-browser.png new file mode 100644 index 00000000..9484b58b Binary files /dev/null and b/public/images/aws/rds-resource-browser.png differ diff --git a/public/images/aws/rds.svg b/public/images/aws/rds.svg new file mode 100644 index 00000000..991264d2 --- /dev/null +++ b/public/images/aws/rds.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-RDS_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/red.svg b/public/images/aws/red.svg new file mode 100644 index 00000000..4c3545d2 --- /dev/null +++ b/public/images/aws/red.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Redshiftct_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/redshift-resource-browser.png b/public/images/aws/redshift-resource-browser.png new file mode 100644 index 00000000..d32838e5 Binary files /dev/null and b/public/images/aws/redshift-resource-browser.png differ diff --git a/public/images/aws/reproducible-machine-learning-cloud-pods-featured-image.png b/public/images/aws/reproducible-machine-learning-cloud-pods-featured-image.png new file mode 100644 index 00000000..3c3ade76 Binary files /dev/null and b/public/images/aws/reproducible-machine-learning-cloud-pods-featured-image.png differ diff --git a/public/images/aws/reproducible_ml_application.png b/public/images/aws/reproducible_ml_application.png new file mode 100644 index 00000000..afbb65cf Binary files /dev/null and b/public/images/aws/reproducible_ml_application.png differ diff --git a/public/images/aws/request-response-traces-test.png b/public/images/aws/request-response-traces-test.png new file mode 100644 index 00000000..e71c5faa Binary files /dev/null and b/public/images/aws/request-response-traces-test.png differ diff --git a/public/images/aws/request-response-traces.png b/public/images/aws/request-response-traces.png new file mode 100644 index 00000000..c8cc0c96 Binary files /dev/null and b/public/images/aws/request-response-traces.png differ diff --git a/public/images/aws/require-identity-based-policy.png b/public/images/aws/require-identity-based-policy.png new file mode 100644 index 00000000..afd96e61 Binary files /dev/null and b/public/images/aws/require-identity-based-policy.png differ diff --git a/public/images/aws/require-resource-based-policy.png b/public/images/aws/require-resource-based-policy.png new file mode 100644 index 00000000..b6a50004 Binary files /dev/null and b/public/images/aws/require-resource-based-policy.png differ diff --git a/public/images/aws/rg.svg b/public/images/aws/rg.svg new file mode 100644 index 00000000..87f68918 --- /dev/null +++ b/public/images/aws/rg.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Service-Catalog_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/rocket.svg b/public/images/aws/rocket.svg new file mode 100644 index 00000000..5294968c --- /dev/null +++ b/public/images/aws/rocket.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/roles-permissions.png b/public/images/aws/roles-permissions.png new file mode 100644 index 00000000..2426bd45 Binary files /dev/null and b/public/images/aws/roles-permissions.png differ diff --git a/public/images/aws/route-53-failover.png b/public/images/aws/route-53-failover.png new file mode 100644 index 00000000..9ab04145 Binary files /dev/null and b/public/images/aws/route-53-failover.png differ diff --git a/public/images/aws/route53-failover-1.png b/public/images/aws/route53-failover-1.png new file mode 100644 index 00000000..02fcb261 Binary files /dev/null and b/public/images/aws/route53-failover-1.png differ diff --git a/public/images/aws/route53-failover-2.png b/public/images/aws/route53-failover-2.png new file mode 100644 index 00000000..a7983ae6 Binary files /dev/null and b/public/images/aws/route53-failover-2.png differ diff --git a/public/images/aws/route53-resolver-resource-browser.png b/public/images/aws/route53-resolver-resource-browser.png new file mode 100644 index 00000000..9a2812f0 Binary files /dev/null and b/public/images/aws/route53-resolver-resource-browser.png differ diff --git a/public/images/aws/route53-resource-browser.png b/public/images/aws/route53-resource-browser.png new file mode 100644 index 00000000..32bf2e49 Binary files /dev/null and b/public/images/aws/route53-resource-browser.png differ diff --git a/public/images/aws/rs.svg b/public/images/aws/rs.svg new file mode 100644 index 00000000..8c1f8204 --- /dev/null +++ b/public/images/aws/rs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Redshiftct_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/runner-config.png b/public/images/aws/runner-config.png new file mode 100644 index 00000000..cd0ce9e5 Binary files /dev/null and b/public/images/aws/runner-config.png differ diff --git a/public/images/aws/s3-resource-browser.png b/public/images/aws/s3-resource-browser.png new file mode 100644 index 00000000..5900925c Binary files /dev/null and b/public/images/aws/s3-resource-browser.png differ diff --git a/public/images/aws/s3-static-website-terraform-featured-image.png b/public/images/aws/s3-static-website-terraform-featured-image.png new file mode 100644 index 00000000..527f94a1 Binary files /dev/null and b/public/images/aws/s3-static-website-terraform-featured-image.png differ diff --git a/public/images/aws/s3.svg b/public/images/aws/s3.svg new file mode 100644 index 00000000..86a60bb9 --- /dev/null +++ b/public/images/aws/s3.svg @@ -0,0 +1,18 @@ + + + Icon-Architecture/64/Arch_Amazon-Simple-Storage-Service_64 + + + + + + + + + + + + + + + diff --git a/public/images/aws/safari-pinned-tab.svg b/public/images/aws/safari-pinned-tab.svg new file mode 100644 index 00000000..8e26d0ff --- /dev/null +++ b/public/images/aws/safari-pinned-tab.svg @@ -0,0 +1,26 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/public/images/aws/sagemaker-create-model.png b/public/images/aws/sagemaker-create-model.png new file mode 100644 index 00000000..e36f49ea Binary files /dev/null and b/public/images/aws/sagemaker-create-model.png differ diff --git a/public/images/aws/sagemaker-resource-browser.png b/public/images/aws/sagemaker-resource-browser.png new file mode 100644 index 00000000..1b4c270e Binary files /dev/null and b/public/images/aws/sagemaker-resource-browser.png differ diff --git a/public/images/aws/saml-sso.png b/public/images/aws/saml-sso.png new file mode 100644 index 00000000..7a48528f Binary files /dev/null and b/public/images/aws/saml-sso.png differ diff --git a/public/images/aws/schema-evolution-glue-msk-featured-image.png b/public/images/aws/schema-evolution-glue-msk-featured-image.png new file mode 100644 index 00000000..2e990a61 Binary files /dev/null and b/public/images/aws/schema-evolution-glue-msk-featured-image.png differ diff --git a/public/images/aws/schema-evolution-glue-msk-flow.svg b/public/images/aws/schema-evolution-glue-msk-flow.svg new file mode 100644 index 00000000..33191bdf --- /dev/null +++ b/public/images/aws/schema-evolution-glue-msk-flow.svg @@ -0,0 +1 @@ +
AWS Glue Schema Registry
AWS Glue Sche...
Amazon MSK Cluster
Amazon MSK Cl...
② Publish AVRO records
② Publish AVRO records
③ Read AVRO records
③ Read AVRO records
④ Request schema (if not cached)
④ Request schema (if not cached)
① Validate / register schema
① Validate / register schema
Producer
Producer
Serializer
Serializer
Consumer
Consumer
Deserializer
Deserializer
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/public/images/aws/script.svg b/public/images/aws/script.svg new file mode 100644 index 00000000..d8c22df8 --- /dev/null +++ b/public/images/aws/script.svg @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Python script + + + Python + script + programming language + + + + + + Vinicius Depizzol + + + vdepizzol@gmail.com + + + Paper sheet by Jakub Steiner <http://jimmac.musichall.cz> + + + 2007-02-16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/sec.svg b/public/images/aws/sec.svg new file mode 100644 index 00000000..d2547564 --- /dev/null +++ b/public/images/aws/sec.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Secrets-Manager_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/secrets-manager-resource-browser.png b/public/images/aws/secrets-manager-resource-browser.png new file mode 100644 index 00000000..00e46488 Binary files /dev/null and b/public/images/aws/secrets-manager-resource-browser.png differ diff --git a/public/images/aws/serverless-logo.png b/public/images/aws/serverless-logo.png new file mode 100644 index 00000000..7aad9ec0 Binary files /dev/null and b/public/images/aws/serverless-logo.png differ diff --git a/public/images/aws/ses-resource-browser.png b/public/images/aws/ses-resource-browser.png new file mode 100644 index 00000000..46ba4d3e Binary files /dev/null and b/public/images/aws/ses-resource-browser.png differ diff --git a/public/images/aws/ses.svg b/public/images/aws/ses.svg new file mode 100644 index 00000000..5916179b --- /dev/null +++ b/public/images/aws/ses.svg @@ -0,0 +1,16 @@ + + + Icon-Architecture/64/Arch_Amazon-Simple-Email-Service_64 + + + + + + + + + + + + + diff --git a/public/images/aws/sfn.svg b/public/images/aws/sfn.svg new file mode 100644 index 00000000..6049ee48 --- /dev/null +++ b/public/images/aws/sfn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/aws/sgm.svg b/public/images/aws/sgm.svg new file mode 100644 index 00000000..dd83e6ab --- /dev/null +++ b/public/images/aws/sgm.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-SageMaker_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/slr.svg b/public/images/aws/slr.svg new file mode 100644 index 00000000..687735d7 --- /dev/null +++ b/public/images/aws/slr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Serverless-Application-Repository_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/sns-resource-browser.png b/public/images/aws/sns-resource-browser.png new file mode 100644 index 00000000..cfd5cbab Binary files /dev/null and b/public/images/aws/sns-resource-browser.png differ diff --git a/public/images/aws/sns.svg b/public/images/aws/sns.svg new file mode 100644 index 00000000..de978681 --- /dev/null +++ b/public/images/aws/sns.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Simple-Notification-Service_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/spr.svg b/public/images/aws/spr.svg new file mode 100644 index 00000000..4cfe121c --- /dev/null +++ b/public/images/aws/spr.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Support_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/spring-logo.svg b/public/images/aws/spring-logo.svg new file mode 100644 index 00000000..8a633855 --- /dev/null +++ b/public/images/aws/spring-logo.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/sqs-resource-browser.png b/public/images/aws/sqs-resource-browser.png new file mode 100644 index 00000000..29ffd0a3 Binary files /dev/null and b/public/images/aws/sqs-resource-browser.png differ diff --git a/public/images/aws/sqs.svg b/public/images/aws/sqs.svg new file mode 100644 index 00000000..fa85beb3 --- /dev/null +++ b/public/images/aws/sqs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Simple-Queue-Service_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/ssm-resource-browser.png b/public/images/aws/ssm-resource-browser.png new file mode 100644 index 00000000..ff105580 Binary files /dev/null and b/public/images/aws/ssm-resource-browser.png differ diff --git a/public/images/aws/ssm.svg b/public/images/aws/ssm.svg new file mode 100644 index 00000000..a3f9f870 --- /dev/null +++ b/public/images/aws/ssm.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Systems-Manager_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/stepfunctions-resource-browser.png b/public/images/aws/stepfunctions-resource-browser.png new file mode 100644 index 00000000..045c099d Binary files /dev/null and b/public/images/aws/stepfunctions-resource-browser.png differ diff --git a/public/images/aws/stf.svg b/public/images/aws/stf.svg new file mode 100644 index 00000000..c8ae7d8e --- /dev/null +++ b/public/images/aws/stf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-Step-Functions_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/public/images/aws/sts.svg b/public/images/aws/sts.svg new file mode 100644 index 00000000..0c1c556b --- /dev/null +++ b/public/images/aws/sts.svg @@ -0,0 +1,13 @@ + + + Icon-Resource/General-Resource/Res_SAML-token_48_Light + + + + + + + + + + diff --git a/public/images/aws/swf.svg b/public/images/aws/swf.svg new file mode 100644 index 00000000..ee9fbdae --- /dev/null +++ b/public/images/aws/swf.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_AWS-Step-Functions_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/terraform-init-hooks.png b/public/images/aws/terraform-init-hooks.png new file mode 100644 index 00000000..48ef1956 Binary files /dev/null and b/public/images/aws/terraform-init-hooks.png differ diff --git a/public/images/aws/testcontainers-logo.svg b/public/images/aws/testcontainers-logo.svg new file mode 100644 index 00000000..ad7d0c2c --- /dev/null +++ b/public/images/aws/testcontainers-logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/tiger-vnc.png b/public/images/aws/tiger-vnc.png new file mode 100644 index 00000000..6e12da1d Binary files /dev/null and b/public/images/aws/tiger-vnc.png differ diff --git a/public/images/aws/timestream-resource-browser.png b/public/images/aws/timestream-resource-browser.png new file mode 100644 index 00000000..4b71d3f8 Binary files /dev/null and b/public/images/aws/timestream-resource-browser.png differ diff --git a/public/images/aws/tools.svg b/public/images/aws/tools.svg new file mode 100644 index 00000000..b24a2e9e --- /dev/null +++ b/public/images/aws/tools.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/transcribe-resource-browser.png b/public/images/aws/transcribe-resource-browser.png new file mode 100644 index 00000000..108bc75f Binary files /dev/null and b/public/images/aws/transcribe-resource-browser.png differ diff --git a/public/images/aws/trc.svg b/public/images/aws/trc.svg new file mode 100644 index 00000000..ee589c34 --- /dev/null +++ b/public/images/aws/trc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/images/aws/trs.svg b/public/images/aws/trs.svg new file mode 100644 index 00000000..bdee250e --- /dev/null +++ b/public/images/aws/trs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/16/Arch_Amazon-Transcribe_16 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/tsd.svg b/public/images/aws/tsd.svg new file mode 100644 index 00000000..3ed3c4ed --- /dev/null +++ b/public/images/aws/tsd.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Timestream_64 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/aws/understanding-localstack-overview.png b/public/images/aws/understanding-localstack-overview.png new file mode 100644 index 00000000..b6e39751 Binary files /dev/null and b/public/images/aws/understanding-localstack-overview.png differ diff --git a/public/images/aws/understanding.svg b/public/images/aws/understanding.svg new file mode 100644 index 00000000..3bab5f7f --- /dev/null +++ b/public/images/aws/understanding.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/aws/vscode-debugging-py-1.png b/public/images/aws/vscode-debugging-py-1.png new file mode 100644 index 00000000..f1e65ff3 Binary files /dev/null and b/public/images/aws/vscode-debugging-py-1.png differ diff --git a/public/images/aws/xry.svg b/public/images/aws/xry.svg new file mode 100644 index 00000000..2adaee1b --- /dev/null +++ b/public/images/aws/xry.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_AWS-X-Ray_64 + Created with Sketch. + + + + + + + + + + + + + diff --git a/replace_commands.py b/replace_commands.py new file mode 100644 index 00000000..7fc5be20 --- /dev/null +++ b/replace_commands.py @@ -0,0 +1,73 @@ +import os +import re +import argparse + +LOG_DIR = 'changelog' +LOG_FILENAME = 'command_changes.log' +LOG_PATH = os.path.join(LOG_DIR, LOG_FILENAME) + +def ensure_log_directory(): + os.makedirs(LOG_DIR, exist_ok=True) + +def normalize_command_block(command_text): + lines = command_text.strip().splitlines() + cleaned_lines = [] + + for line in lines: + cleaned_line = re.sub(r'^\s*[$#]\s*', '', line) # Remove leading $ or # + cleaned_lines.append(cleaned_line) + + return "```bash\n" + "\n".join(cleaned_lines) + "\n```" + +def process_file(filepath, log_entries): + with open(filepath, 'r', encoding='utf-8') as file: + content = file.read() + + pattern = re.compile(r'\{\{<\s*command\s*>\}\}([\s\S]*?)\{\{<\s*/\s*command\s*>\}\}', re.MULTILINE) + matches = list(pattern.finditer(content)) + if not matches: + return + + new_content = content + for match in matches: + original_block = match.group(0) + command_text = match.group(1) + converted_block = normalize_command_block(command_text) + + # Determine line number of the start of the match + line_number = content[:match.start()].count('\n') + 1 + + new_content = new_content.replace(original_block, converted_block, 1) + + log_entry = f"{filepath}:{line_number}: {original_block.strip()} -> {converted_block.strip()}" + log_entries.append(log_entry) + + with open(filepath, 'w', encoding='utf-8') as file: + file.write(new_content) + +def crawl_directory(directory): + ensure_log_directory() + log_entries = [] + + for root, _, files in os.walk(directory): + for filename in files: + if filename.endswith(('.md', '.mdx')): + filepath = os.path.join(root, filename) + process_file(filepath, log_entries) + + # Write log file + with open(LOG_PATH, 'w', encoding='utf-8') as log_file: + for entry in log_entries: + log_file.write(entry + '\n') + + print(f"Logged {len(log_entries)} change(s) to {LOG_PATH}") + +def main(): + parser = argparse.ArgumentParser(description="Convert command blocks in Markdown files.") + parser.add_argument("directory", help="Path to the root directory to scan.") + args = parser.parse_args() + + crawl_directory(args.directory) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/replace_images.py b/replace_images.py new file mode 100644 index 00000000..6828b602 --- /dev/null +++ b/replace_images.py @@ -0,0 +1,97 @@ +import os +import re +import argparse + +LOG_DIR = 'changelog' +LOG_FILENAME = 'image_changes.log' +LOG_PATH = os.path.join(LOG_DIR, LOG_FILENAME) + +def ensure_log_directory(): + os.makedirs(LOG_DIR, exist_ok=True) + +def extract_attributes(tag: str): + """Extracts src and alt attributes from a tag string.""" + src_match = re.search(r'src\s*=\s*["\']([^"\']+)["\']', tag) + alt_match = re.search(r'alt\s*=\s*["\']([^"\']+)["\']', tag) + if src_match and alt_match: + return src_match.group(1), alt_match.group(1) + return None, None + +def process_file(filepath, log_entries): + with open(filepath, 'r', encoding='utf-8') as file: + lines = file.readlines() + + changed = False + + for line_number, line in enumerate(lines, start=1): + new_line = line + + # Match MDX-wrapped tags + mdx_pattern = re.finditer( + r"""\{\s*/\*\s*]+?)\s*/?>\s*\*/\}\s*\{\s*/\*\s*mdx-disabled\s*\*/\s*\}""", new_line) + for match in mdx_pattern: + old = match.group(0) + attrs = match.group(1) + src, alt = extract_attributes(attrs) + if src and alt: + new = f'![{alt}](/images/aws/{src})' + new_line = new_line.replace(old, new) + log_entries.append(f"{filepath}:{line_number}: {old} -> {new}") + changed = True + + # Match raw tags + img_pattern = re.finditer( + r"""]*?)\s*/?>""", new_line) + for match in img_pattern: + old = match.group(0) + attrs = match.group(1) + src, alt = extract_attributes(attrs) + if src and alt: + new = f'![{alt}](/images/aws/{src})' + new_line = new_line.replace(old, new) + log_entries.append(f"{filepath}:{line_number}: {old} -> {new}") + changed = True + + # Match Hugo-style figure tags + hugo_pattern = re.finditer( + r"""\{\{<\s*figure\s+[^>]*src="([^"]+)"[^>]*alt="([^"]+)"[^>]*>\}\}""", new_line) + for match in hugo_pattern: + old = match.group(0) + src = match.group(1) + alt = match.group(2) + new = f'![{alt}](/images/aws/{src})' + new_line = new_line.replace(old, new) + log_entries.append(f"{filepath}:{line_number}: {old} -> {new}") + changed = True + + lines[line_number - 1] = new_line + + if changed: + with open(filepath, 'w', encoding='utf-8') as file: + file.writelines(lines) + +def crawl_directory(directory): + ensure_log_directory() + log_entries = [] + + for root, _, files in os.walk(directory): + for filename in files: + if filename.endswith(('.md', '.mdx')): + filepath = os.path.join(root, filename) + process_file(filepath, log_entries) + + with open(LOG_PATH, 'w', encoding='utf-8') as log_file: + for entry in log_entries: + log_file.write(entry + '\n') + + print(f"Logged {len(log_entries)} change(s) to {LOG_PATH}") + +def main(): + parser = argparse.ArgumentParser(description="Update image syntax in Markdown files.") + parser.add_argument("directory", help="Path to the root directory to scan.") + args = parser.parse_args() + + crawl_directory(args.directory) + +if __name__ == "__main__": + main() diff --git a/src/content/docs/aws/integrations/app-frameworks/architect.md b/src/content/docs/aws/integrations/app-frameworks/architect.mdx similarity index 78% rename from src/content/docs/aws/integrations/app-frameworks/architect.md rename to src/content/docs/aws/integrations/app-frameworks/architect.mdx index afacd09c..e7c4fed8 100644 --- a/src/content/docs/aws/integrations/app-frameworks/architect.md +++ b/src/content/docs/aws/integrations/app-frameworks/architect.mdx @@ -17,31 +17,31 @@ If you are adapting an existing configuration, you might be able to skip certain ### Setup To use Architect in conjunction with LocalStack, simply install the `arclocal` command (sources can be found [here](https://github.com/localstack/architect-local)). -{{< command >}} -$ npm install -g architect-local @architect/architect aws-sdk -{{< /command >}} +```bash +npm install -g architect-local @architect/architect aws-sdk +``` The `arclocal` command has the same usage as the `arc` command, so you can start right away. Create a test directory -{{< command >}} -$ mkdir architect_quickstart && cd architect_quickstart -{{< / command >}} +```bash +mkdir architect_quickstart && cd architect_quickstart +``` then create an architect project -{{< command >}} -$ arclocal init -{{< / command >}} +```bash +arclocal init +``` ### Deployment Now you need to start LocalStack. After LocalStack has started you can deploy your Architect setup via: -{{< command >}} -$ arclocal deploy -{{< / command >}} +```bash +arclocal deploy +``` ## Further reading diff --git a/src/content/docs/aws/integrations/app-frameworks/quarkus.md b/src/content/docs/aws/integrations/app-frameworks/quarkus.mdx similarity index 100% rename from src/content/docs/aws/integrations/app-frameworks/quarkus.md rename to src/content/docs/aws/integrations/app-frameworks/quarkus.mdx diff --git a/src/content/docs/aws/integrations/app-frameworks/serverless-framework.md b/src/content/docs/aws/integrations/app-frameworks/serverless-framework.mdx similarity index 96% rename from src/content/docs/aws/integrations/app-frameworks/serverless-framework.md rename to src/content/docs/aws/integrations/app-frameworks/serverless-framework.mdx index fa2af2d8..4323d0d9 100644 --- a/src/content/docs/aws/integrations/app-frameworks/serverless-framework.md +++ b/src/content/docs/aws/integrations/app-frameworks/serverless-framework.mdx @@ -67,9 +67,9 @@ resources: ## Install and configure Serverless-LocalStack Plugin To install the plugin, execute the following command in the root of your project. -{{< command >}} -$ npm install -D serverless-localstack -{{< / command >}} +```bash +npm install -D serverless-localstack +``` Next, set up the plugin by adding the following properties to `serverless.yml`. @@ -131,14 +131,14 @@ In LocalStack Pro, no code changes are required using our [Transparent Endpoint You can now deploy your Serverless service to LocalStack. First, start LocalStack by running -{{< command >}} -$ localstack start -{{< / command >}} +```bash +localstack start +``` Then deploy the endpoint by running -{{< command >}} -$ serverless deploy --stage local -{{< / command >}} +```bash +serverless deploy --stage local +``` The expected result should be similar to: diff --git a/src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md b/src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.mdx similarity index 90% rename from src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md rename to src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.mdx index 358249f0..903a86f5 100644 --- a/src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.md +++ b/src/content/docs/aws/integrations/app-frameworks/spring-cloud-function.mdx @@ -11,9 +11,10 @@ sidebar: In this guide, you will learn how to use LocalStack to test your serverless applications powered by Spring Cloud Function framework. -{{< callout >}} +:::note + Some features and services described in this document may not work properly on aarch64, including Apple's M1 silicon. -{{< /callout >}} +::: ## Covered Topics @@ -63,22 +64,22 @@ install the Gradle build tool on your machine. Then run the following command to initialize a new Gradle project -{{< command >}} -$ gradle init -{{< / command >}} +```bash +gradle init +``` Running the command below will run the gradle wrapper task -{{< command >}} -$ gradle wrapper -{{< / command >}} +```bash +gradle wrapper +``` After running the wrapper task, you will find the Gradle wrapper script `gradlew`. From now on, we will use the wrapper instead of the globally installed Gradle binary: -{{< command >}} -$ ./gradlew -{{< / command >}} +```bash +./gradlew +``` ### Project Settings @@ -117,7 +118,8 @@ To that end, we use the "Shadow Jar" plugin. Here's our final `build.gradle`: -{{< highlight gradle "linenos=table" >}} +{/* {{< highlight gradle "linenos=table" >}} */} {/* mdx-disabled */} {/* TODO: packing this into a bash block for now */} +```gradle plugins { id "java" id "org.jetbrains.kotlin.jvm" version '1.5.31' @@ -194,7 +196,8 @@ shadowJar { } assemble.dependsOn shadowJar -{{< / highlight >}} +``` +{/* {/* {/* {/* {/* {/* {/* {/* {/* {/* {{< / highlight >}} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} Please note that we will be using `org.localstack.sampleproject` as a working namespace, and `org.localstack.sampleproject.Application` as an @@ -210,18 +213,18 @@ In this project, we are following to setup up `src/main/resources/log4j2.xml` content. ```xml - +?xml version="1.0" encoding="UTF-8"?> - + %d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n - - + + @@ -254,7 +257,9 @@ org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest Now our application needs an entry-class, the one we referenced earlier. Let's add it under `src/main/kotlin/org/localstack/sampleproject/Application.kt`. -{{< highlight kotlin "linenos=table" >}} +{/* {/* {/* {/* {/* {/* {/* {/* {/* {{< highlight kotlin "linenos=table" >}} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject import org.springframework.boot.autoconfigure.SpringBootApplication @@ -265,7 +270,8 @@ class Application fun main(args: Array) { // Do nothing unless you use a custom runtime } -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} ### Configure Jackson @@ -274,7 +280,9 @@ The easiest way to get started with JSON is to use the Jackson library. Let's configure it by creating a new configuration class `JacksonConfiguration.kt` under `src/main/kotlin/org/localstack/sampleproject/config`: -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} + +```java package org.localstack.sampleproject.config import com.fasterxml.jackson.annotation.JsonInclude @@ -305,8 +313,8 @@ class JacksonConfiguration { findAndRegisterModules() } } - -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} In applications where you need support for multiple formats or a format different from JSON (for example, SOAP/XML applications) simply use multiple @@ -318,7 +326,9 @@ implementations. Let's create a small logging utility to simplify interactions with the logger -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.util import org.apache.logging.log4j.LogManager @@ -327,7 +337,8 @@ import org.apache.logging.log4j.Logger open class Logger { val LOGGER: Logger = LogManager.getLogger(javaClass.enclosingClass) } -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} ### Add Request/Response utilities @@ -342,7 +353,9 @@ Your application may even support multiple protocols with different request/resp Let's define utility functions to to build API gateway responses: -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.util import org.springframework.messaging.Message @@ -364,11 +377,14 @@ fun buildJsonResponse(data: T, code: Int = 200): Message { fun buildJsonErrorResponse(message: String, code: Int = 500) = buildJsonResponse(ResponseError(message), code) -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} And now a utility function to process API Gateway requests: -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.util import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent @@ -392,7 +408,8 @@ fun apiGatewayFunction( return@Function buildJsonErrorResponse(message ?: "", 500) } } -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} ### Creating a sample Model / DTO @@ -400,7 +417,9 @@ To transfer data from requests into something more meaningful than JSON strings (and back) you will be using a lot of Models and Data Transfer Objects (DTOs). It's time to define our first one. -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.model import com.fasterxml.jackson.annotation.JsonIgnore @@ -412,14 +431,17 @@ data class SampleModel( @JsonIgnore val jsonIgnoredProperty: String? = null, ) -{{< / highlight >}} +``` +{/*{{< / highlight >}}*/} ### Creating Rest API endpoints Let's add our first endpoints to simulate CRUD operations on previously defined `SampleModel`: -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.api import com.fasterxml.jackson.databind.ObjectMapper @@ -460,7 +482,9 @@ class SampleApi(private val objectMapper: ObjectMapper) { buildJsonResponse(SAMPLE_RESPONSE.find { it.id == desiredId }) } } -{{< / highlight >}} + +``` +{/*{{< / highlight >}}*/} Note how we used Spring's dependency injection to inject `ObjectMapper` Bean we configured earlier. @@ -471,7 +495,9 @@ We know Java's cold start is always a pain. To minimize this pain, we will try to define a pre-warming endpoint within the Rest API. By invoking this function every 5-10 mins we can make sure Rest API lambda is always kept in a pre-warmed state. -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.api import com.fasterxml.jackson.databind.ObjectMapper @@ -489,7 +515,9 @@ class ScheduleApi(private val objectMapper: ObjectMapper) { buildJsonResponse("OK") } } -{{< / highlight >}} + +``` +{/*{{< / highlight >}}*/} Now you can add a scheduled event to the Rest API lambda function with the following synthetic payload (to simulate API gateway request). This way, you can define any other scheduled events, but we recommend using pure lambda functions. @@ -512,7 +540,9 @@ We can still define pure lambda functions, DynamoDB stream handlers, and so on. Below you can find a little example of few lambda functions grouped in `LambdaApi` class. -{{< highlight kotlin "linenos=table" >}} +{/*{{< highlight kotlin "linenos=table" >}}*/} +{/* TODO: packing this into a java block for now */} +```java package org.localstack.sampleproject.api import com.amazonaws.services.lambda.runtime.events.DynamodbEvent @@ -529,7 +559,7 @@ class LambdaApi : SpringBootStreamHandler() { companion object : Logger() @Bean - fun functionOne(): Function { +{/* fun functionOne(): Function { */} {/* mdx-disabled */} return Function { LOGGER.info("calling function one") return@Function "ONE"; @@ -537,7 +567,7 @@ class LambdaApi : SpringBootStreamHandler() { } @Bean - fun functionTwo(): Function { +{/* fun functionTwo(): Function { */} {/* mdx-disabled */} return Function { LOGGER.info("calling function two") return@Function it; @@ -545,13 +575,15 @@ class LambdaApi : SpringBootStreamHandler() { } @Bean - fun dynamoDbStreamHandlerExample(): Function { +{/* fun dynamoDbStreamHandlerExample(): Function { */} {/* mdx-disabled */} return Function { LOGGER.info("handling DynamoDB stream event") } } } -{{< / highlight >}} + +``` +{/*{{< / highlight >}}*/} As you can see from the example above, we are using `SpringBootStreamHandler` class as a base that takes care of the application bootstrapping process and @@ -569,8 +601,9 @@ The `Lambda-Events` package comes with a set of predefined wrappers that you can Check our [sample project](https://github.com/localstack/localstack-pro-samples/tree/master/sample-archive/spring-cloud-function-microservice) for usage examples. -{{< tabpane >}} -{{< tab header="Serverless" lang="yaml" >}} +{/* {{< tabpane >}} */} {/* mdx-disabled */} +{/* {{< tab header="Serverless" lang="yaml" >}} */} {/* mdx-disabled */} +```yaml service: localstack-sampleproject-serverless provider: @@ -620,8 +653,10 @@ functions: handler: org.localstack.sampleproject.api.LambdaApi environment: FUNCTION_NAME: functionTwo -{{< /tab >}} -{{< tab header="AWS CDK" lang="kotlin" >}} +```yaml +{/* {/* {/* {{< /tab >}} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} +{/* {{< tab header="AWS CDK" lang="kotlin" >}} */} {/* mdx-disabled */} +```java package org.localstack.cdkstack import java.util.UUID @@ -694,7 +729,7 @@ class ApplicationStack(parent: Construct, name: String) : Stack(parent, name) { } } {{< /tab >}} -{{< tab header="Terraform" lang="tf" >}} +{/* {{< tab header="Terraform" lang="tf" >}} */} {/* mdx-disabled */} variable "STAGE" { type = string default = "local" @@ -843,8 +878,8 @@ resource "aws_lambda_function" "exampleFunctionTwo" { } } {{< /tab >}} -{{< /tabpane >}} - +{/* {{< /tabpane >}} */} {/* mdx-disabled */} +``` ## Testing, Debugging and Hot Reloading Please read our [Lambda Tools](/content/en/tools/lambda-tools/_index.md) diff --git a/src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md b/src/content/docs/aws/integrations/aws-native-tools/aws-cdk.mdx similarity index 90% rename from src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md rename to src/content/docs/aws/integrations/aws-native-tools/aws-cdk.mdx index 29833060..b18664b8 100644 --- a/src/content/docs/aws/integrations/aws-native-tools/aws-cdk.md +++ b/src/content/docs/aws/integrations/aws-native-tools/aws-cdk.mdx @@ -6,7 +6,7 @@ sidebar: order: 2 --- - +![AWS CDK](public/images/aws/aws-cdk-logo.svg) ## Overview @@ -29,17 +29,18 @@ cdklocal --version # e.g. 1.65.5 ``` -{{< callout >}} +:::note + Using `cdklocal` locally (e.g. within the `node_modules` of your repo instead of globally installed) does not work at the moment for some setups, so make sure you install both `aws-cdk` and `aws-cdk-local` with the `-G` flag. -{{< /callout >}} +::: ### Usage `cdklocal` can be used as a drop-in replacement of where you would otherwise use `cdk` when targeting the AWS Cloud. -{{< command >}} -$ cdklocal --help -{{< /command >}} +```bash +cdklocal --help +``` ### Configuration @@ -52,9 +53,9 @@ The following environment variables can be configured: Make sure that LocalStack is installed and successfully started with the required services before running the example -{{< command >}} -$ curl http://localhost:4566/_localstack/health -{{< /command >}} +```bash +curl http://localhost:4566/_localstack/health +``` The CDK command line ships with a sample app generator to run a quick test for getting started. @@ -73,8 +74,8 @@ cdklocal deploy Once the deployment is done, you can inspect the created resources via the [`awslocal`](https://github.com/localstack/awscli-local) command line -{{< command >}} -$ awslocal sns list-topics +```bash +awslocal sns list-topics { "Topics": [ { @@ -82,7 +83,7 @@ $ awslocal sns list-topics } ] } -{{< /command >}} +``` ## Current Limitations @@ -100,7 +101,7 @@ When this lambda is executed locally from the `/tmp` folder, the package can not ## Other resources -* [Hot-reloading Lambda functions with CDK]({{< ref "user-guide/lambda-tools/hot-reloading#aws-cloud-development-kit-cdk-configuration" >}}) +{/* * [Hot-reloading Lambda functions with CDK]({{< ref "user-guide/lambda-tools/hot-reloading#aws-cloud-development-kit-cdk-configuration" >}}) */} {/* mdx-disabled */} ## External resources diff --git a/src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md b/src/content/docs/aws/integrations/aws-native-tools/aws-chalice.mdx similarity index 89% rename from src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md rename to src/content/docs/aws/integrations/aws-native-tools/aws-chalice.mdx index 07180ae7..b45216f2 100644 --- a/src/content/docs/aws/integrations/aws-native-tools/aws-chalice.md +++ b/src/content/docs/aws/integrations/aws-native-tools/aws-chalice.mdx @@ -17,21 +17,21 @@ Using LocalStack, you can kick-start your development process, create a new Chal Start LocalStack inside a Docker container by running: -{{< command >}} -$ localstack start -d -{{< / command >}} +```bash +localstack start -d +``` Install the `chalice-local` package by running: -{{< command >}} -$ pip install chalice-local -{{< / command >}} +```bash +pip install chalice-local +``` You can now create a new Chalice project by running: -{{< command >}} -$ chalice-local new-project -{{< / command >}} +```bash +chalice-local new-project +``` You will be prompted with an interactive menu where you can choose the name of your project and the project type. In this example, we are using `localstack-test` as the project name and `REST API` as the project type: @@ -85,24 +85,24 @@ For now, our Application is serving only a JSON Message which is `{'hello': 'wor Just as with AWS, you can now test your API using `chalice-local local`: -{{< command >}} -$ chalice-local local +```bash +chalice-local local Serving on http://127.0.0.1:8000 -{{< / command >}} +``` You can also do a `curl` to test the API: -{{< command >}} -$ curl -X GET http://127.0.0.1:8000 +```bash +curl -X GET http://127.0.0.1:8000 {"hello":"world"} -{{< / command >}} +``` ## Deploying the Chalice API You can use `chalice-local deploy` to deploy the REST API now: -{{< command >}} -$ chalice-local deploy +```bash +chalice-local deploy Creating deployment package. Creating IAM role: localstack-test-dev @@ -111,6 +111,6 @@ Creating Rest API Resources deployed: - Lambda ARN: arn:aws:lambda:us-east-1:000000000000:function:localstack-test-dev - Rest API URL: https://y5iuni004m.execute-api.us-east-1.amazonaws.com/api/ -{{< / command >}} +``` We now have our Chalice Application deployed on a Lambda Amazon Resource Name (ARN) along with a REST API URL. \ No newline at end of file diff --git a/src/content/docs/aws/integrations/aws-native-tools/aws-cli.md b/src/content/docs/aws/integrations/aws-native-tools/aws-cli.mdx similarity index 74% rename from src/content/docs/aws/integrations/aws-native-tools/aws-cli.md rename to src/content/docs/aws/integrations/aws-native-tools/aws-cli.mdx index 77f7a172..362242cc 100644 --- a/src/content/docs/aws/integrations/aws-native-tools/aws-cli.md +++ b/src/content/docs/aws/integrations/aws-native-tools/aws-cli.mdx @@ -9,20 +9,21 @@ sidebar: ## Introduction The [AWS Command Line Interface (CLI)](https://aws.amazon.com/cli/) is a unified tool for creating and managing AWS services via a command line interface. -All CLI commands applicable to services implemented within [LocalStack]({{< ref "references/coverage/" >}}) can be executed when operating against LocalStack. +{/* All CLI commands applicable to services implemented within [LocalStack]({{< ref "references/coverage/" >}}) can be executed when operating against LocalStack. */} {/* mdx-disabled */} You can use the AWS CLI with LocalStack using either of the following approaches: -* [AWS CLI]({{}}) -* [LocalStack AWS CLI]({{}}) +[AWS CLI](#aws-cli) + +[LocalStack AWS CLI](#localstack-aws-cli-awslocal) ## AWS CLI You can install `aws` by using the following command if it's not already installed. -{{< command >}} -$ pip install awscli -{{< / command >}} +```bash +pip install awscli +``` You can configure the AWS CLI to redirect AWS API requests to LocalStack using two approaches: @@ -34,17 +35,18 @@ You can configure the AWS CLI to redirect AWS API requests to LocalStack using t You can use AWS CLI with an endpoint URL by configuring test environment variables and include the `--endpoint-url=` flag in your `aws` CLI commands. For example: -{{< command >}} -$ export AWS_ACCESS_KEY_ID="test" -$ export AWS_SECRET_ACCESS_KEY="test" -$ export AWS_DEFAULT_REGION="us-east-1" +```bash +export AWS_ACCESS_KEY_ID="test" +export AWS_SECRET_ACCESS_KEY="test" +export AWS_DEFAULT_REGION="us-east-1" -$ aws --endpoint-url=http://localhost:4566 kinesis list-streams -{{< / command >}} +aws --endpoint-url=http://localhost:4566 kinesis list-streams +``` + +:::note -{{< callout >}} To enable the creation of pre-signed URLs for S3 buckets, please set both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` to the value "test." Our pre-signed URL signature verification algorithm validates the pre-signed URL and its expiration. -{{< /callout >}} +::: ### Configuring a custom profile @@ -68,14 +70,15 @@ aws_secret_access_key=test You can now use the `localstack` profile with the `aws` CLI: -{{< command >}} -$ aws s3 mb s3://test --profile localstack -$ aws s3 ls --profile localstack -{{< / command >}} +```bash +aws s3 mb s3://test --profile localstack +aws s3 ls --profile localstack +``` + +:::tip -{{< callout "tip" >}} Alternatively, you can also set the `AWS_PROFILE=localstack` environment variable, in which case the `--profile localstack` parameter can be omitted in the commands above. -{{< /callout >}} +::: ## LocalStack AWS CLI (`awslocal`) @@ -85,31 +88,33 @@ Alternatively, you can also set the `AWS_PROFILE=localstack` environment variabl Install the `awslocal` command using the following command: -{{< command >}} -$ pip install awscli-local[ver1] -{{< / command >}} +```bash +pip install awscli-local[ver1] +``` + +:::tip -{{< callout "tip" >}} The above command installs the most recent version of the underlying AWS CLI version 1 (`awscli`) package. If you would rather manage your own `awscli` version (e.g., `v1` or `v2`) and only install the wrapper script, you can use the following command: -{{< command >}} -$ pip install awscli-local -{{< / command >}} -{{< /callout >}} +```bash +pip install awscli-local +``` +::: -{{< callout >}} -Automatic installation of AWS CLI version 2 is currently not supported yet (at the time of writing there is no official pypi package for `v2` available), but the `awslocal` technically also works with AWS CLI v2 (see [this section]({{< ref "#limitations" >}}) for more details). -{{< /callout >}} +:::note + +{/* Automatic installation of AWS CLI version 2 is currently not supported yet (at the time of writing there is no official pypi package for `v2` available), but the `awslocal` technically also works with AWS CLI v2 (see [this section]({{< ref "#limitations" >}}) for more details). */} {/* mdx-disabled */} +::: ### Usage The `awslocal` command shares identical usage with the standard `aws` command. For comprehensive usage instructions, refer to the manual pages by running `awslocal help`. -{{< command >}} +```bash awslocal kinesis list-streams -{{< / command >}} +``` ### Configuration @@ -129,11 +134,11 @@ To work around this issue, you have 2 options: We do not recommend this, but it is technically possible. Also, you should install these libraries in a Python virtualenv, to avoid version clashes with other libraries on your system: -{{< command >}} -$ virtualenv .venv -$ . .venv/bin/activate -$ pip install https://github.com/boto/botocore/archive/v2.zip https://github.com/aws/aws-cli/archive/v2.zip -{{< / command >}} +```bash +virtualenv .venv +. .venv/bin/activate +pip install https://github.com/boto/botocore/archive/v2.zip https://github.com/aws/aws-cli/archive/v2.zip +``` Please also note there is a known limitation for issuing requests using `--no-sign-request` with the AWS CLI. @@ -154,10 +159,10 @@ By default, the container running [amazon/aws-cli](https://docs.aws.amazon.com/c To ensure that the two docker containers can communicate create a network on the docker engine: -{{< command >}} -$ docker network create localstack +```bash +docker network create localstack 0c9cb3d37b0ea1bfeb6b77ade0ce5525e33c7929d69f49c3e5ed0af457bdf123 -{{< / command >}} +``` Then modify the `docker-compose.yml` specifying the network to use: @@ -170,24 +175,24 @@ networks: Run AWS Cli v2 docker container using this network (example): -{{< command >}} -$ docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions +```bash +docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions { "Functions": [] } -{{< / command >}} +``` If you use AWS CLI v2 from a docker container often, create an alias: -{{< command >}} -$ alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566' -{{< / command >}} +```bash +alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566' +``` So you can type: -{{< command >}} -$ laws lambda list-functions +```bash +laws lambda list-functions { "Functions": [] } -{{< / command >}} +``` diff --git a/src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.md b/src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.mdx similarity index 90% rename from src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.md rename to src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.mdx index d34cb970..01236bf4 100644 --- a/src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.md +++ b/src/content/docs/aws/integrations/aws-native-tools/aws-copilot-cli.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 5 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -18,29 +19,37 @@ Using `copilotlocal` instead of `copilot` in your command line therefore ensures ### Download / Installation -{{< tabpane lang="bash" >}} -{{< tab header="Linux AMD64" lang="bash">}} + + +```bash curl -Lo copilotlocal https://github.com/localstack/copilot-cli/raw/localstack-builds/build/linux-amd64/copilotlocal && chmod +x copilotlocal # if you want to have copilotlocal in your $PATH, move the executable e.g. to /usr/local/bin/ sudo mv copilotlocal /usr/local/bin/ -{{< /tab >}} -{{< tab header="Linux ARM64" lang="bash">}} +``` + + +```bash curl -Lo copilotlocal https://github.com/localstack/copilot-cli/raw/localstack-builds/build/linux-arm64/copilotlocal && chmod +x copilotlocal # if you want to have copilotlocal in your $PATH, move the executable e.g. to /usr/local/bin/ sudo mv copilotlocal /usr/local/bin/ -{{< /tab >}} -{{< tab header="Mac OS" lang="bash">}} +``` + + +```bash curl -Lo copilotlocal https://github.com/localstack/copilot-cli/raw/localstack-builds/build/macos-darwin/copilotlocal && chmod +x copilotlocal # if you want to have copilotlocal in your $PATH, move the executable e.g. to /usr/local/bin/ sudo mv copilotlocal /usr/local/bin/ -{{< /tab >}} -{{< tab header="Windows Powershell" lang="powershell">}} +``` + + +```powershell Invoke-WebRequest -Uri https://github.com/localstack/copilot-cli/raw/localstack-builds/build/windows/copilotlocal.exe -OutFile copilotlocal.exe -{{< /tab >}} -{{< /tabpane >}} +``` + + ### Configuration diff --git a/src/content/docs/aws/integrations/aws-native-tools/aws-sam.md b/src/content/docs/aws/integrations/aws-native-tools/aws-sam.mdx similarity index 96% rename from src/content/docs/aws/integrations/aws-native-tools/aws-sam.md rename to src/content/docs/aws/integrations/aws-native-tools/aws-sam.mdx index 75ec4516..8ea2e3c7 100644 --- a/src/content/docs/aws/integrations/aws-native-tools/aws-sam.md +++ b/src/content/docs/aws/integrations/aws-native-tools/aws-sam.mdx @@ -25,17 +25,17 @@ When executing deployment commands like `samlocal ["build", "deploy", "validate" You can install the `samlocal` wrapper script by running the following command: -{{< command >}} -$ pip install aws-sam-cli-local -{{< / command >}} +```bash +pip install aws-sam-cli-local +``` ### Create a new SAM project You can initialize a new SAM project using the following command: -{{< command >}} -$ samlocal init -{{< / command >}} +```bash +samlocal init +``` Select `1` to create a new SAM application using an AWS Quick Start template. The SAM CLI will ask you for the project name and the runtime for the Lambda function. @@ -49,9 +49,9 @@ Then, enter the project name and press `Enter`. After initializing the SAM project, enter the project directory and deploy the application using the following command: -{{< command >}} -$ samlocal deploy --guided -{{< / command >}} +```bash +samlocal deploy --guided +``` Enter the default values for the deployment, such as the stack name, region, and confirm the changes. The `samlocal` wrapper will package and deploy the application to LocalStack. diff --git a/src/content/docs/aws/integrations/aws-sdks/cpp.md b/src/content/docs/aws/integrations/aws-sdks/cpp.mdx similarity index 100% rename from src/content/docs/aws/integrations/aws-sdks/cpp.md rename to src/content/docs/aws/integrations/aws-sdks/cpp.mdx diff --git a/src/content/docs/aws/integrations/aws-sdks/go.md b/src/content/docs/aws/integrations/aws-sdks/go.mdx similarity index 92% rename from src/content/docs/aws/integrations/aws-sdks/go.md rename to src/content/docs/aws/integrations/aws-sdks/go.mdx index c584c9ae..6fff45dd 100644 --- a/src/content/docs/aws/integrations/aws-sdks/go.md +++ b/src/content/docs/aws/integrations/aws-sdks/go.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 3 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -21,8 +22,9 @@ The Go SDK has two major versions, each with their own way of specifying the Loc Here is an example of how to create an S3 Client from a Session with the endpoint set to LocalStack. Full examples for both SDK versions can be found [in our samples repository](https://github.com/localstack/localstack-aws-sdk-examples/tree/main/go). -{{< tabpane lang="golang" >}} -{{< tab header="aws-go-sdk" lang="golang" >}} + + + ```go package main import ( @@ -45,9 +47,12 @@ func main() { client := s3.New(sess) // ... -}{{< /tab >}} +} +``` + -{{< tab header="aws-go-sdk-v2" lang="golang" >}} + +```go package main import ( @@ -76,8 +81,10 @@ func main() { o.BaseEndpoint = aws.String(awsEndpoint) }) // ... -}{{< /tab >}} -{{< /tabpane >}} +} +``` + + ## Resources diff --git a/src/content/docs/aws/integrations/aws-sdks/java.md b/src/content/docs/aws/integrations/aws-sdks/java.mdx similarity index 94% rename from src/content/docs/aws/integrations/aws-sdks/java.md rename to src/content/docs/aws/integrations/aws-sdks/java.mdx index f44bbfcb..d319beaf 100644 --- a/src/content/docs/aws/integrations/aws-sdks/java.md +++ b/src/content/docs/aws/integrations/aws-sdks/java.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 4 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -38,9 +39,9 @@ The client can be used to upload a file to an existing bucket and then retrieve #### Configuring the S3 Client -{{< tabpane lang="java" >}} -{{< tab header="v1" lang="java" >}} - + + +```java // Credentials that can be replaced with real AWS values. (To be handled properly and not hardcoded.) // These can be skipped altogether for LocalStack, but we generally want to avoid discrepancies with production code. final String ACCESS_KEY = "test"; @@ -52,11 +53,11 @@ AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration("s3.localhost.localstack.cloud:4566", Regions.US_EAST_1.getName())) .build(); + ``` + -{{< /tab >}} - -{{< tab header="v2" lang="java" >}} - + +```java // Credentials that can be replaced with real AWS values. (To be handled properly and not hardcoded.) // These can be skipped altogether for LocalStack, but we generally want to avoid discrepancies with production code. final String ACCESS_KEY = "test"; @@ -72,14 +73,15 @@ S3Client s3Client = S3Client.builder() AwsBasicCredentials.create(ACCESS_KEY, SECRET_KEY))) .region(region) .build(); - -{{< /tab >}} -{{< /tabpane >}} +``` + + #### Interacting with S3 -{{< tabpane lang="java" >}} -{{< tab header="v1" lang="java" >}} + + +```java // Existing bucket name. final String BUCKET_NAME = "records"; @@ -105,11 +107,11 @@ S3Object s3Object = s3Client.getObject(BUCKET_NAME, key); // Read the text content of the file using a BufferedReader. S3ObjectInputStream objectInputStream = s3Object.getObjectContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(objectInputStream)); +``` + -{{< /tab >}} - -{{< tab header="v2" lang="java" >}} - + +```java // Existing bucket name. final String BUCKET_NAME = "records"; @@ -134,8 +136,9 @@ GetObjectRequest getObjectRequest = GetObjectRequest.builder() // Retrieving the object from the bucket. ResponseInputStream response = s3Client.getObject(getObjectRequest); -{{< /tab >}} -{{< /tabpane >}} +``` + + ### DynamoDB Service @@ -158,9 +161,9 @@ The full list of supported converters can be found #### Configuring the DynamoDB Client -{{< tabpane lang="java" >}} -{{< tab header="v1" lang="java">}} - + + +```java // Credentials that can be replaced with real AWS values. (To be handled properly and not hardcoded.) // These can be skipped altogether for LocalStack, but we generally want to avoid discrepancies with production code. final String ACCESS_KEY = "test"; @@ -175,11 +178,10 @@ private static AmazonDynamoDB dynamoDBClient = AmazonDynamoDBClientBuilder.stand .withEndpointConfiguration( new EndpointConfiguration("localhost.localstack.cloud:4566", Regions.US_EAST_1.getName())) .build(); - -{{< /tab >}} - -{{< tab header="v2" lang="java">}} - +``` + + +```java // Credentials that can be replaced with real AWS values. (To be handled properly and not hardcoded.) // These can be skipped altogether for LocalStack, but we generally want to avoid discrepancies with production code. final String ACCESS_KEY = "test"; @@ -204,16 +206,16 @@ DynamoDbClient dynamoDbClient = DynamoDbClient.builder() DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.builder() .dynamoDbClient(dynamoDbClient) .build(); - -{{< /tab >}} -{{< /tabpane >}} +``` + + #### Interacting with DynamoDB -{{< tabpane lang="java" >}} - -{{< tab header="v1" lang="java">}} + + +```java // Existing table name String TABLE_NAME = "person"; @@ -249,11 +251,11 @@ Person person = new Person(); person.setId(item.getString("id")); person.setName(item.getString("name")); person.setBirthdateFromString(item.getString("birthdate")); +``` + -{{< /tab >}} - -{{< tab header="v2" lang="java">}} - + +```java // Existing table name. String TABLE_NAME = "person"; @@ -275,9 +277,9 @@ String personId = "000012356"; // Retrieving the entity based on id. Person person = table.getItem(Key.builder().partitionValue(personId).build()); - -{{< /tab >}} -{{< /tabpane >}} +``` + + ## Resources diff --git a/src/content/docs/aws/integrations/aws-sdks/javascript.md b/src/content/docs/aws/integrations/aws-sdks/javascript.mdx similarity index 93% rename from src/content/docs/aws/integrations/aws-sdks/javascript.md rename to src/content/docs/aws/integrations/aws-sdks/javascript.mdx index bb388873..d537cb1f 100644 --- a/src/content/docs/aws/integrations/aws-sdks/javascript.md +++ b/src/content/docs/aws/integrations/aws-sdks/javascript.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 5 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -20,9 +21,9 @@ The JavaScript SDK has two major versions, each with their own way of specifying Here is an example of how to create a Lambda client and an S3 client with the endpoint set to LocalStack. -{{< tabpane lang="javascript" >}} -{{< tab header="aws-sdk-js" lang="javascript" >}} - + + +```javascript const AWS = require('aws-sdk'); // Configure the AWS SDK to use the LocalStack endpoint and credentials @@ -66,8 +67,10 @@ s3.listBuckets((err, data) => { console.log(data); } }); -{{< /tab >}} -{{< tab header="aws-sdk-js-v3" lang="javascript" >}} +``` + + +```javascript const { LambdaClient, ListFunctionsCommand } = require('@aws-sdk/client-lambda'); const { S3Client, ListBucketsCommand } = require('@aws-sdk/client-s3'); @@ -108,15 +111,16 @@ const s3 = new S3Client({ s3.send(new ListBucketsCommand({})) .then((data) => console.log(data)) .catch((error) => console.error(error)); - -{{< /tab >}} -{{< /tabpane >}} +``` + + + +:::note -{{< callout >}} In case of issues resolving S3 DNS record, we can fallback to `http://localhost:4566` in combination with the provider setting `forcePathStyle: true` (see the specific way of setting this parameter for each SDK above). The S3 service endpoint is slightly different from the other service endpoints, because AWS is deprecating path-style based access for hosting buckets. -See [S3 documentation]({{< ref "user-guide/aws/s3" >}}) about endpoints. -{{< /callout >}} +See [S3 documentation](user-guide/aws/s3) about endpoints. {/*TODO: fix link*/} +::: ## Resources diff --git a/src/content/docs/aws/integrations/aws-sdks/net.md b/src/content/docs/aws/integrations/aws-sdks/net.mdx similarity index 96% rename from src/content/docs/aws/integrations/aws-sdks/net.md rename to src/content/docs/aws/integrations/aws-sdks/net.mdx index 0f8c494b..f57803e5 100644 --- a/src/content/docs/aws/integrations/aws-sdks/net.md +++ b/src/content/docs/aws/integrations/aws-sdks/net.mdx @@ -34,10 +34,11 @@ var lambdaClient = new AmazonLambdaClient(new BasicAWSCredentials("test", "test" ); ``` -{{< callout >}} +:::note + Make sure you are setting the `AuthenticationRegion` and not the `RegionEndpoint`. Setting the `RegionEndpoint` to a constant like `RegionEndpoint.EUWest1` will override the ServiceURL, and your request will end up against AWS. -{{< /callout >}} +::: ### S3 specific endpoint @@ -48,10 +49,11 @@ var config = new AmazonS3Config({ ServiceURL = "http://s3.localhost.localstack.c var s3client = new AmazonS3Client(config); ``` -{{< callout >}} -In case of issues resolving this DNS record, we can fallback to in combination with the provider setting `ForcePathStyle = true`. +:::note + +In case of issues resolving this DNS record, we can fallback to [http://localhost:4566](http://localhost:4566) in combination with the provider setting `ForcePathStyle = true`. The S3 service endpoint is slightly different from the other service endpoints, because AWS is deprecating path-style based access for hosting buckets. -{{< /callout >}} +::: ```csharp var config = new AmazonS3Config( diff --git a/src/content/docs/aws/integrations/aws-sdks/php.md b/src/content/docs/aws/integrations/aws-sdks/php.mdx similarity index 100% rename from src/content/docs/aws/integrations/aws-sdks/php.md rename to src/content/docs/aws/integrations/aws-sdks/php.mdx diff --git a/src/content/docs/aws/integrations/aws-sdks/python-boto3.md b/src/content/docs/aws/integrations/aws-sdks/python-boto3.mdx similarity index 98% rename from src/content/docs/aws/integrations/aws-sdks/python-boto3.md rename to src/content/docs/aws/integrations/aws-sdks/python-boto3.mdx index f73fa486..0bdcb563 100644 --- a/src/content/docs/aws/integrations/aws-sdks/python-boto3.md +++ b/src/content/docs/aws/integrations/aws-sdks/python-boto3.mdx @@ -27,9 +27,10 @@ if __name__ == "__main__": main() ``` -{{< callout >}} +:::note + If you're connecting from within a Python **Lambda function** handler in LocalStack, you can create a default client without configuring the `endpoint_url` - LocalStack will automatically forward the invocations to the local API endpoints (available in Pro, see [here](/aws/tooling/transparent-endpoint-injection) for more details). -{{< /callout >}} +::: ```python client = boto3.client("lambda") diff --git a/src/content/docs/aws/integrations/aws-sdks/ruby.md b/src/content/docs/aws/integrations/aws-sdks/ruby.mdx similarity index 97% rename from src/content/docs/aws/integrations/aws-sdks/ruby.md rename to src/content/docs/aws/integrations/aws-sdks/ruby.mdx index 640032ea..5d0159a2 100644 --- a/src/content/docs/aws/integrations/aws-sdks/ruby.md +++ b/src/content/docs/aws/integrations/aws-sdks/ruby.mdx @@ -74,17 +74,18 @@ run_demo if $PROGRAM_NAME == __FILE__ You can run the example by saving it to a file, for example `localstack.rb`, and then running it with: -{{< command >}} -$ ruby ./localstack.rb +```bash +ruby ./localstack.rb Created bucket doc-example-bucket-b911f85f-4dd3-4668-a32e-3f69aa4e37dc. Your bucket's region is: us-east-2 -{{< /command >}} +``` + +:::note -{{< callout >}} The endpoint we configure for the S3 and virtual host bucket is `http://s3.localhost.localstack.cloud`. In case of issues resolving the DNS record, we can fall back to `http://localhost:4566` in combination with the provider setting `force_path_style: true`. The S3 service endpoint differs slightly from the other service endpoints because AWS deprecates path-style-based access for hosting buckets. -{{< /callout >}} +::: For alternative AWS services, you can use the following configuration: diff --git a/src/content/docs/aws/integrations/containers/devcontainers.md b/src/content/docs/aws/integrations/containers/devcontainers.mdx similarity index 78% rename from src/content/docs/aws/integrations/containers/devcontainers.md rename to src/content/docs/aws/integrations/containers/devcontainers.mdx index ad260979..5701713f 100644 --- a/src/content/docs/aws/integrations/containers/devcontainers.md +++ b/src/content/docs/aws/integrations/containers/devcontainers.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 1 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -19,12 +20,13 @@ You can use the following two approaches to set up LocalStack with DevContainers ## LocalStack Templates LocalStack provides two different approaches for [Templates](https://github.com/localstack/devcontainer-template) which can be used via [supporting tools](https://containers.dev/supporting). - +{/* TODO: transform this into a proper table, deal with the breaks */} +{/* | **Type** | **Advantages** | **Disadvantages** | |------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Docker-in-Docker** | • Strict separation from host Docker service
• Control LocalStack with LocalStack CLI
• All-in-one container | • Resources are limited as all resources spawned by LocalStack are encapsulated within the container
• LocalStack volume directory must exist beforehand
• Larger container size
• Cannot use existing images on host system | | **Docker-outside-of-Docker** | • Easy addition of external services managed by Docker Compose
• DNS service for custom domains | • Host's Docker socket mounted into containers, raising security concerns
• Limited LocalStack CLI usage
• LocalStack volume directory must exist beforehand | - +*/} ### Docker-in-Docker * [Dev Container CLI](#dev-container-cli) @@ -51,111 +53,106 @@ Create a JSON file called `options.json` with the desired options in it. Use the command below to generate your `devcontainer.json` from the template. Include additional features with the `--features` option if needed. -{{< command >}} -$ devcontainer templates apply \ +```bash +devcontainer templates apply \ --template-id ghcr.io/localstack/devcontainer-template/localstack-dind \ --template-args "$(cat ./options.json)" \ --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' -{{< /command >}} +``` Start your container using the following command. -{{< command >}} -$ devcontainer up --id-label project=localstack --workspace-folder . -{{< /command >}} +```bash +devcontainer up --id-label project=localstack --workspace-folder . +``` Connect to it using the `id-label`. -{{< command >}} -$ devcontainer exec --id-label project=localstack /bin/bash -{{< /command >}} +```bash +devcontainer exec --id-label project=localstack /bin/bash +``` Check that the LocalStack CLI is installed by executing: -{{< command >}} +```bash vscode ➜ ~ $ localstack --version 3.6.0 vscode ➜ ~ $ -{{< /command >}} +``` To remove the container, run this cleanup script since the Dev Container CLI cannot currently do it. -{{< command >}} -$ for container in $(docker ps -q); do \ +```bash +for container in $(docker ps -q); do \ [[ "$(docker inspect --format '{{ index .Config.Labels "project"}}' $container)" = "localstack" ]] && \ docker rm -f $container; \ done -{{< /command >}} +``` #### VSCode -{{< callout >}} +:::note + The DevContainer extension is currently reporting issues & bugs. Follow the [issue](https://github.com/microsoft/vscode-remote-release/issues/10180) for details. -{{< /callout >}} +::: To get started with LocalStack and DevContainers in VS Code, follow these steps: * Open VS Code with the DevContainers extension installed. * From the Command Palette, select **Dev Containers: Add Dev Container configuration file**. -

- Add Dev Container configuration file -

+

+ ![Add Dev Container configuration file](public/images/aws/01_add_devcontainer_conf.png) +

* Choose **Add configuration to workspace**; alternatively, select **Add configuration to user data folder** for general usage. -

- Add configuration to workspace -

+

+ ![Add configuration to workspace](public/images/aws/02_add_conf_workspace.png) +

* Select **Show All Definitions...** to view community templates. -

- Show all Template definitions -

+

+ ![Show all Template definitions](public/images/aws/03_show_all_definitions.png) +

* Filter by typing "localstack" in the search bar and select the **LocalStack Docker-in-Docker** template. -

- Select official LocalStack Template (DinD) -

+

+ [Select official LocalStack Template (DinD)](public/images/aws/04a_select_template_dind.png) +

* Proceed through the configuration by selecting or entering values. Pressing **Enter** through the options will apply default settings, which include: -

- * Select the image variant (only Debian-based images are supported). -

- Image variant option -

+

+* Select the image variant (only Debian-based images are supported). +![Image variant option](public/images/aws/05_option_1.png) * Select the log level. -

- Log level option -

+

+![Log level option] (public/images/aws/06_option_2.png) +

* Select the LocalStack version. -

- LocalStack version option -

- -* Relative paths are acceptable for the volume path, but the specified mount folder must be created prior to building the container. -

- Volume path option -

- Volume folder exists -

- -* Select various tools and configuration options from the checklist. - For local tools, either select the appropriate SDK or tool feature, or install it manually. - The template and LocalStack CLI feature do not manage these installations. -

- List of options (DinD) -

- -* You can also add additional features. -

- Additional Features -

- -* This results in the following folder structure in your workspace. -

- Generated folder structure (DinD) -

+

+![LocalStack version option](public/images/aws/07_option_3.png) +

+ +* Relative paths are acceptable for the volume path, but the specified mount folder must be created prior to building the container. +

+![Volume path option](public/images/aws/08_volume_option.png) +

+![Volume folder exists](public/images/aws/09_volume_folder.png) + +* Select various tools and configuration options from the checklist. + For local tools, either select the appropriate SDK or tool feature, or install it manually. + The template and LocalStack CLI feature do not manage these installations. +

+![List of options (DinD)](public/images/aws/10a_options_list_dind.png) + +* You can also add additional features. +

+![Additional Features](public/images/aws/11_additional_features.png) + +* This results in the following folder structure in your workspace. +

+![Generated folder structure (DinD)](public/images/aws/12a_folder_structure_dind.png) #### Reference file @@ -246,121 +243,123 @@ Create a JSON file called `options.json` with the desired options in it. Use the command below to generate your `devcontainer.json` from the template. Include additional features with the `--features` option if needed. -{{< command >}} -$ devcontainer templates apply \ +```bash +devcontainer templates apply \ --template-id ghcr.io/localstack/devcontainer-template/localstack-dood \ --template-args "$(cat ./options.json)" \ --features '[{"id":"ghcr.io/devcontainers/features/aws-cli:1"}]' -{{< /command >}} +``` Start your container using the following command. -{{< command >}} -$ devcontainer up --id-label project=localstack --workspace-folder . -{{< /command >}} +```bash +devcontainer up --id-label project=localstack --workspace-folder . +``` Connect to it using the `id-label`. -{{< command >}} -$ devcontainer exec --id-label project=localstack /bin/bash -{{< /command >}} +```bash +devcontainer exec --id-label project=localstack /bin/bash +``` Check that the LocalStack CLI is installed by executing: -{{< command >}} +```bash vscode ➜ ~ $ localstack --version 3.6.0 vscode ➜ ~ $ -{{< /command >}} +``` To remove the container, run this cleanup script since the Dev Container CLI cannot currently do it. -{{< command >}} -$ docker compose \ +```bash +docker compose \ --project-name "$(basename $PWD)_devcontainer" \ -f ./.devcontainer/docker-compose.yml down -{{< /command >}} +``` #### VSCode -{{< callout >}} +:::note + The DevContainer extension is currently reporting issues & bugs. Follow the [issue](https://github.com/microsoft/vscode-remote-release/issues/10180) for details. -{{< /callout >}} +::: To get started with LocalStack and DevContainers in VS Code, follow these steps: * Open VSCode with the DevContainers extension installed. * From the Command Palette, choose **Dev Containers: Add Dev Container configuration file**. -

- Add Dev Container configuration file -

+

+![Add Dev Container configuration file](public/images/aws/01_add_devcontainer_conf.png) +

* Choose the **Add configuration to workspace** option; alternatively, select **Add configuration to user data folder** for general usage. -

- Add configuration to workspace -

+

+![Add configuration to workspace](public/images/aws/02_add_conf_workspace.png) +

* Select **Show All Definitions...** to view community templates. -

- Show all Template definitions -

+

+![Show all Template definitions](public/images/aws/03_show_all_definitions.png) +

* Start typing "localstack" in the search bar to filter the official LocalStack templates and choose **LocalStack Docker-outside-of-Docker**. -

- Select official LocalStack Template (DooD) -

+

+![Select official LocalStack Template (DooD)](public/images/aws/04b_select_template_dood.png) +

* Navigate through the configuration inputs by either selecting or typing in values. The defaults provided in the template are sufficient; navigating through the options by hitting Enter will result in a valid configuration. These options include: -

+

* The image variant (currently only Debian-based images are supported). -

- Image variant option -

+

+![Image variant option](public/images/aws/05_option_1.png) +

* The log level. -

- Log level option -

+

+![Log level option](public/images/aws/06_option_2.png) +

* The LocalStack version. -

- LocalStack version option -

+

+![LocalStack version option](public/images/aws/07_option_3.png) +

* Note that LocalStack's IP address must be within the defined CIDR range. The network CIDR defaults to `10.0.2.0/24`, with the container IP set to `10.0.2.20`. -

+

* For the volume path, relative paths are accepted, but you must create the specified mount's folder before successfully building the container. The default is `./.volume`. -

- Volume path option -

- Volume folder exists -

+

+![Volume path option](public/images/aws/08_volume_option.png) +

+![Volume folder exists](public/images/aws/09_volume_folder.png) +

* Select multiple tools and configuration options from the checklist. For local tools, you must select the appropriate SDK or tool feature, or install it manually. The template and the underlying LocalStack CLI Feature do not manage these installations. -

- List of options (DooD) -

+

+![List of options (DooD)](public/images/aws/10b_options_list_dood.png) +

* You can also add additional features. -

- Additional Features -

+

+![Additional Features](public/images/aws/11_additional_features.png) +

* As a result, you will end up with the folder structure shown below. -

- Folder structure (DooD) -

+

+![Folder structure (DooD)](public/images/aws/12b_folder_structure_dood.png) +

###### Reference files -{{< tabpane lang="json" >}} -{{< tab header="devcontainer.json" lang="json" >}} + + +```json { "name": "LocalStack DooD setup", "dockerComposeFile": "docker-compose.yml", @@ -382,9 +381,10 @@ To get started with LocalStack and DevContainers in VS Code, follow these steps: "ghcr.io/devcontainers/features/aws-cli:1": {} } } -{{< /tab >}} - -{{< tab header="docker-compose.yml" lang="yaml" >}} +``` + + +```yml services: localstack: container_name: "localstack-main" @@ -426,12 +426,16 @@ networks: config: # Specify the subnet range for IP address allocation - subnet: 10.0.2.0/24 -{{< /tab >}} +``` + -{{< tab header="Dockerfile" lang="dockerfile" >}} + +```dockerfile FROM mcr.microsoft.com/devcontainers/base:bookworm -{{< /tab >}} -{{< tab header=".env" lang="bash" >}} +``` + + +```bash # Activate LocalStack Pro: https://docs.localstack.cloud/getting-started/auth-token/ LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:-} # required for Pro, not processed via template due to security reasons LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY:-} @@ -447,8 +451,9 @@ ENFORCE_IAM=false AWS_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1 IMAGE_NAME=localstack/localstack-pro:latest -{{< /tab >}} -{{< /tabpane >}} +``` + + ## LocalStack Feature @@ -465,7 +470,8 @@ Add the following minimal [Feature](https://github.com/localstack/devcontainer-f That's it. By building your container the LocalStack CLI and any of the enabled local-tools (currently these are `awslocal`, `cdklocal`, `pulumilocal`, `samlocal` and `tflocal`) will be installed. -{{< callout >}} +:::note + The LocalStack Feature does not manage the installation of underlying tools (e.g., for awslocal, aws-cli is not installed). For more information on dependencies, please refer to the [Feature documentation](https://github.com/localstack/devcontainer-feature). -{{< /callout >}} \ No newline at end of file +::: \ No newline at end of file diff --git a/src/content/docs/aws/integrations/containers/eksctl.md b/src/content/docs/aws/integrations/containers/eksctl.mdx similarity index 83% rename from src/content/docs/aws/integrations/containers/eksctl.md rename to src/content/docs/aws/integrations/containers/eksctl.mdx index c684543d..9d03b4f4 100644 --- a/src/content/docs/aws/integrations/containers/eksctl.md +++ b/src/content/docs/aws/integrations/containers/eksctl.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 5 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Introduction @@ -12,10 +13,11 @@ sidebar: LocalStack supports running `eksctl` on LocalStack to create EKS clusters locally. LocalStack's EKS spin up embedded Kubernetes clusters using [K3s](https://github.com/k3s-io/k3s) to allow you to use the EKS APIs in your local environment. -{{< callout >}} +:::note + The support for `eksctl` is currently experimental and may not work in all cases. We are working on improving the support for `eksctl` in LocalStack. -{{< /callout >}} +::: ## Getting started @@ -37,18 +39,15 @@ You can use the `--profile` flag to [specify the LocalStack profile](https://doc Run the following command to create a cluster: -{{< tabpane text=true >}} -{{< tab header="**Older Versions (<= eksctl v0.180.0)**" >}} -{{< command >}} - -$ eksctl create cluster --nodes 1 --profile localstack - -{{< / command >}} -{{< /tab >}} - -{{< tab header="**Newer Versions (>= eksctl v0.181.0)**" >}} -{{< command >}} - +{/* TODO: change labels so they are formatted like **** in markdown */} + + +```bash +eksctl create cluster --nodes 1 --profile localstack +``` + + +```bash export AWS_CLOUDFORMATION_ENDPOINT=http://localhost.localstack.cloud:4566 export AWS_EC2_ENDPOINT=http://localhost.localstack.cloud:4566 export AWS_EKS_ENDPOINT=http://localhost.localstack.cloud:4566 @@ -58,15 +57,14 @@ export AWS_IAM_ENDPOINT=http://localhost.localstack.cloud:4566 export AWS_STS_ENDPOINT=http://localhost.localstack.cloud:4566 eksctl create cluster --nodes 1 - -{{< / command >}} -{{< /tab >}} -{{< /tabpane >}} +``` + + ### Get the nodes You can use the `kubectl` command to get the nodes in the cluster: -{{< command >}} -$ kubectl get nodes -{{< / command >}} +```bash +kubectl get nodes +``` diff --git a/src/content/docs/aws/integrations/containers/gitpod.md b/src/content/docs/aws/integrations/containers/gitpod.mdx similarity index 100% rename from src/content/docs/aws/integrations/containers/gitpod.md rename to src/content/docs/aws/integrations/containers/gitpod.mdx diff --git a/src/content/docs/aws/integrations/containers/kubernetes.md b/src/content/docs/aws/integrations/containers/kubernetes.mdx similarity index 87% rename from src/content/docs/aws/integrations/containers/kubernetes.md rename to src/content/docs/aws/integrations/containers/kubernetes.mdx index cd62287b..0c694285 100644 --- a/src/content/docs/aws/integrations/containers/kubernetes.md +++ b/src/content/docs/aws/integrations/containers/kubernetes.mdx @@ -11,11 +11,12 @@ sidebar: [Kubernetes](https://kubernetes.io) is an open-source container orchestration platform that simplifies the deployment, scaling, and management of containerized applications. LocalStack can be deployed on Kubernetes using the [LocalStack Helm chart](https://github.com/localstack/helm-charts). -{{< callout "warning" >}} +:::danger + Creating shared/hosted LocalStack instances may have some licensing implications. For example, a valid license might be necessary for each user who interacts with the instance. If you have any questions or uncertainties regarding the licensing implications, we encourage you to [contact us](https://localstack.cloud/contact) for further details. -{{< /callout >}} +::: ## Getting started @@ -41,9 +42,9 @@ To install Helm, refer to the [Helm install guide](https://github.com/helm/helm The following command allows you to download and install all the charts from this repository: -{{< command >}} -$ helm repo add localstack https://localstack.github.io/helm-charts -{{< /command >}} +```bash +helm repo add localstack https://localstack.github.io/helm-charts +``` ### Using Helm @@ -89,11 +90,11 @@ extraEnvVars: And you can use these values when installing the chart in your cluster: -{{< command >}} -$ helm repo add localstack-charts https://localstack.github.io/helm-charts -$ helm install my-release localstack-charts/localstack -f pro-values.yaml -{{< /command >}} +```bash +helm repo add localstack-charts https://localstack.github.io/helm-charts +helm install my-release localstack-charts/localstack -f pro-values.yaml +``` ## Parameters -{{< github-markdown repo="localstack/helm-charts" file="charts/localstack/README.md#parameters" lang="markdown" >}} \ No newline at end of file +{/* {{< github-markdown repo="localstack/helm-charts" file="charts/localstack/README.md#parameters" lang="markdown" >}} */} {/* mdx-disabled */} \ No newline at end of file diff --git a/src/content/docs/aws/integrations/containers/openshift.md b/src/content/docs/aws/integrations/containers/openshift.mdx similarity index 88% rename from src/content/docs/aws/integrations/containers/openshift.md rename to src/content/docs/aws/integrations/containers/openshift.mdx index c480bff0..3ddad525 100644 --- a/src/content/docs/aws/integrations/containers/openshift.md +++ b/src/content/docs/aws/integrations/containers/openshift.mdx @@ -15,16 +15,18 @@ With OpenShift, you can deploy LocalStack on a managed Kubernetes cluster, as a This guide demonstrates how you can deploy LocalStack on OpenShift using Devfile. You can use the deployed LocalStack container to create AWS resources that you can use for local development and testing purposes. -{{< callout "warning" >}} +:::danger + Creating shared/hosted LocalStack instances may have some licensing implications. For example, a valid license might be necessary for each user who interacts with the instance. If you have any questions or uncertainties regarding the licensing implications, we encourage you to [contact us](https://localstack.cloud/contact) for further details. -{{< /callout >}} +::: + +:::note -{{< callout >}} LocalStack on OpenShift can be used in conjunction with the [LocalStack Community image](https://hub.docker.com/r/localstack/localstack). However, specific features such as execution of Lambda functions as OpenShift pods and other container workloads is only available in the [LocalStack Pro image](https://hub.docker.com/r/localstack/localstack-pro). -{{< /callout >}} +::: ## Getting started @@ -39,8 +41,8 @@ Instead of running LocalStack locally, you will deploy it on OpenShift and use t You can deploy LocalStack via the **Developer** perspective in the OpenShift Web Console. Navigate to the **+Add** view to deploy LocalStack using a Devfile. -OpenShift Developer perspective -

+![OpenShift Developer perspective](/images/aws/openshift-developer-view.png) +

To deploy LocalStack on OpenShift, click on **Import from Git** in the **Git Repository** tile. In the Git section, enter the following Git repository URL to import the Devfile and Helm charts which contains the configuration for LocalStack: [**https://github.com/localstack/localstack-dev-spaces**](https://github.com/localstack/localstack-dev-spaces). @@ -56,8 +58,8 @@ Click on **Create** to deploy LocalStack on OpenShift. You can see the build status of the LocalStack deployment in the **Topology** view. -OpenShift Topology view -

+![OpenShift Topology view](/images/aws/openshift-topology-view.png) +

After successful deployment, you can see the **localstack-dev-spaces** pod in the **Topology** view. Click on the pod to view the details. @@ -68,8 +70,8 @@ You will be able to see the following details: - Exposed services along with the service port and the pod port. - Exposed routes for your deployed pods on the cluster. -LocalStack Dev Spaces Deployment -

+![LocalStack Dev Spaces Deployment](/images/aws/localstack-dev-spaces.png) +

### Creating AWS resources on OpenShift @@ -79,20 +81,21 @@ Copy the route URL and use it to interact with the LocalStack container. To create an S3 bucket and an SQS queue, run the following commands: -{{< command >}} -$ export AWS_ENDPOINT_URL='' -$ awslocal s3 mb s3://my-bucket -$ awslocal sqs create-queue --queue-name my-queue -{{< /command >}} +```bash +export AWS_ENDPOINT_URL='' +awslocal s3 mb s3://my-bucket +awslocal sqs create-queue --queue-name my-queue +``` In the above commands, replace `` with the route URL of the LocalStack container. The `AWS_ENDPOINT_URL` environment variable is used to specify the endpoint URL of the LocalStack container. -{{< callout >}} +:::note + By default, the endpoint URL for `awslocal` is `http://localhost:4566`. Since we are running LocalStack on OpenShift, we need to specify the route URL of the LocalStack container. You can swap `awslocal` with the AWS CLI, by specifying the additional `--endpoint-url` parameter. -{{< /callout >}} +::: You can further use integrations, such as [CDK](https://docs.localstack.cloud/user-guide/integrations/aws-cdk/), [SAM CLI](https://docs.localstack.cloud/user-guide/integrations/aws-sam/), and [Terraform](https://docs.localstack.cloud/user-guide/integrations/terraform/), to interact with the Ephemeral Instance. In these integrations, you can change the `AWS_ENDPOINT_URL` environment variable to the endpoint URL of the Ephemeral Instance. diff --git a/src/content/docs/aws/integrations/containers/rancher-desktop.md b/src/content/docs/aws/integrations/containers/rancher-desktop.mdx similarity index 89% rename from src/content/docs/aws/integrations/containers/rancher-desktop.md rename to src/content/docs/aws/integrations/containers/rancher-desktop.mdx index 28e3fefe..3881448a 100644 --- a/src/content/docs/aws/integrations/containers/rancher-desktop.md +++ b/src/content/docs/aws/integrations/containers/rancher-desktop.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 6 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Introduction @@ -33,7 +34,7 @@ These setups enable LocalStack to run smoothly with Rancher Desktop across vario ### Linux/macOS -{{}} +{/* {{}} */} {/* mdx-disabled */} ### Recommended Settings for Rancher Desktop on macOS If you're using Rancher Desktop on macOS, particularly on Apple Silicon (M1, M2, etc.), it's crucial to adjust both the emulation engine and the volume-sharing method. @@ -65,7 +66,7 @@ To switch the volume sharing method from reverse-SSHFS to VirtioFS: 2. Proceed to the **Virtual Machine** section, where you'll find the volume mount options. 3. Select the **File Sharing** setting and change it from `reverse-sshfs` to `VirtioFS`. 4. Restart Rancher Desktop to implement the changes. -{{}} +{/* {{}} */} {/* mdx-disabled */} #### Rancher Desktop with dockerd @@ -77,19 +78,19 @@ In this scenario, you need to create a symlink from the Rancher Desktop socket t Start Rancher Desktop and verify it is set to use the Docker runtime. Link the Docker socket with the following command: -{{< command >}} -# 1. Make sure there is no existing socket at /var/run/docker.sock +```bash +1. Make sure there is no existing socket at /var/run/docker.sock sudo rm -f /var/run/docker.sock -# 2. Adjust the path if your Rancher Desktop socket is in a different location -$ sudo ln -s /var/run/rancher-desktop-lima/docker.sock /var/run/docker.sock -{{< /command >}} +2. Adjust the path if your Rancher Desktop socket is in a different location +sudo ln -s /var/run/rancher-desktop-lima/docker.sock /var/run/docker.sock +``` Start LocalStack using this command: -{{< command >}} -$ DEBUG=1 localstack start --network rancher -{{< /command >}} +```bash +DEBUG=1 localstack start --network rancher +``` #### Rancher Desktop with containerd @@ -98,9 +99,9 @@ Ensure that the `docker` command is available through Rancher Desktop's setup, o To start LocalStack with the `containerd` environment, use the following command: -{{< command >}} -$ DEBUG=1 DOCKER_CMD=nerdctl localstack start --network rancher -{{< /command >}} +```bash +DEBUG=1 DOCKER_CMD=nerdctl localstack start --network rancher +``` ### Windows @@ -108,20 +109,21 @@ You can run Rancher Desktop on Windows using WSL2 (Windows Subsystem for Linux) Ensure Rancher Desktop is configured to use `dockerd`, and that the Docker socket is accessible in WSL2: -{{< command >}} -$ rancher-desktop settings set --docker -{{< /command >}} +```bash +rancher-desktop settings set --docker +``` Initialize and start Rancher Desktop: -{{< command >}} -$ rancher-desktop --start -{{< /command >}} +```bash +rancher-desktop --start +``` Modify your Docker Compose configuration to work with Rancher Desktop: -{{< tabpane lang="yml" >}} -{{< tab header="Community" lang="yml" >}} + + +```yml services: localstack: container_name: "${LOCALSTACK_DOCKER_NAME:-localstack-main}" @@ -136,8 +138,10 @@ services: volumes: - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack" - "/var/run/docker.sock:/var/run/docker.sock" -{{< /tab >}} -{{< tab header="Pro" lang="yml" >}} +``` + + +```yml services: localstack: container_name: "${LOCALSTACK_DOCKER_NAME:-localstack-main}" @@ -155,8 +159,9 @@ services: volumes: - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack" - "/var/run/docker.sock:/var/run/docker.sock" -{{< /tab >}} -{{< /tabpane >}} + ``` + + Finally, start the services using `docker compose up` or `nerdctl compose up`, depending on your configuration. This will launch your LocalStack instance configured to interact with Rancher Desktop. \ No newline at end of file diff --git a/src/content/docs/aws/integrations/continuous-integration/bitbucket.md b/src/content/docs/aws/integrations/continuous-integration/bitbucket.mdx similarity index 100% rename from src/content/docs/aws/integrations/continuous-integration/bitbucket.md rename to src/content/docs/aws/integrations/continuous-integration/bitbucket.mdx diff --git a/src/content/docs/aws/integrations/continuous-integration/circleci.md b/src/content/docs/aws/integrations/continuous-integration/circleci.mdx similarity index 99% rename from src/content/docs/aws/integrations/continuous-integration/circleci.md rename to src/content/docs/aws/integrations/continuous-integration/circleci.mdx index ecc5d5f6..0c7182ca 100644 --- a/src/content/docs/aws/integrations/continuous-integration/circleci.md +++ b/src/content/docs/aws/integrations/continuous-integration/circleci.mdx @@ -235,7 +235,7 @@ jobs: # Replace placeholders with right values command: | curl --request POST \ - --url https://circleci.com/api/v2/project////pipeline \ + --url https://circleci.com/api/v2/project////pipeline --header 'Circle-Token: $CIRCLECI_TOKEN' \ --header 'content-type: application/json' \ --data '{"parameters":{"run_workflow_build":false, "run_workflow_test1":true, "run_workflow_test2":true}}' @@ -260,7 +260,6 @@ workflows: - localstack-update-state localstack-test1: when: << pipeline.parameters.run_workflow_test1 >> - jobs: - localstack-use-state ... localstack-test2: diff --git a/src/content/docs/aws/integrations/continuous-integration/codebuild.md b/src/content/docs/aws/integrations/continuous-integration/codebuild.mdx similarity index 98% rename from src/content/docs/aws/integrations/continuous-integration/codebuild.md rename to src/content/docs/aws/integrations/continuous-integration/codebuild.mdx index bc242812..98cf5c25 100644 --- a/src/content/docs/aws/integrations/continuous-integration/codebuild.md +++ b/src/content/docs/aws/integrations/continuous-integration/codebuild.mdx @@ -12,10 +12,10 @@ sidebar: CodeBuild allows you to define your build project, set the source code location, and handles the building and testing, while supporting various programming languages, build tools, and runtime environments. LocalStack supports CodeBuild out of the box and can be easily integrated into your pipeline to run your tests against a cloud emulator. -{{< alert title="Requirement" >}} +{/* {{< alert title="Requirement" >}} */} {/* mdx-disabled */} LocalStack depends on the Docker socket to emulate your infrastructure. To enable it, update your project by ticking **Environment > Additional Configuration > Privileged > Enable this flag if you want to build Docker Images or want your builds to get elevated privileges**. -{{< / alert >}} +{/* {{< / alert >}} */} {/* mdx-disabled */} ## Snippets @@ -209,7 +209,6 @@ phases: with: state-backend: cloud-pods state-name: - state-action: save ... ``` diff --git a/src/content/docs/aws/integrations/continuous-integration/github-actions.md b/src/content/docs/aws/integrations/continuous-integration/github-actions.mdx similarity index 100% rename from src/content/docs/aws/integrations/continuous-integration/github-actions.md rename to src/content/docs/aws/integrations/continuous-integration/github-actions.mdx diff --git a/src/content/docs/aws/integrations/continuous-integration/gitlab-ci.md b/src/content/docs/aws/integrations/continuous-integration/gitlab-ci.mdx similarity index 93% rename from src/content/docs/aws/integrations/continuous-integration/gitlab-ci.md rename to src/content/docs/aws/integrations/continuous-integration/gitlab-ci.mdx index 53426895..c41b4729 100644 --- a/src/content/docs/aws/integrations/continuous-integration/gitlab-ci.md +++ b/src/content/docs/aws/integrations/continuous-integration/gitlab-ci.mdx @@ -12,19 +12,22 @@ This page contains easily customisable snippets to show you how to manage LocalS ### Start up Localstack -{{< callout "tip" >}} +:::tip + While working with a Docker-in-Docker (`dind`) setup, the Docker runner requires `privileged` mode. You must always use `privileged = true` in your GitLab CI's `config.toml` file while setting up LocalStack in GitLab CI runners. For more information, see [GitLab CI Docker-in-Docker](https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker-executor) documentation. -{{< /callout >}} +::: +{/*TODO: transform this into a proper collapsable item*/} +{/*
For LocalStack versions before 3.0.0 Under test>variables, add:
LOCALSTACK_HOSTNAME: localhost.localstack.cloud
HOSTNAME_EXTERNAL: localhost.localstack.cloud.
- +*/} #### Service ```yaml @@ -224,4 +227,4 @@ Find out more about ephemeral instances [here](/user-guide/cloud-sandbox/). ## Examples -- [End-to-End Testing in Gitlab CI with Testcontainers and LocalStack: Understanding Runners and Docker in Docker]({{< ref "tutorials/gitlab_ci_testcontainers/" >}}) - A readily configured demo project, that will walk you through the process of setting up end-to-end testing for a backend application using Testcontainers and LocalStack within GitLab CI. \ No newline at end of file +{/* - [End-to-End Testing in Gitlab CI with Testcontainers and LocalStack: Understanding Runners and Docker in Docker]({{< ref "tutorials/gitlab_ci_testcontainers/" >}}) - A readily configured demo project, that will walk you through the process of setting up end-to-end testing for a backend application using Testcontainers and LocalStack within GitLab CI. */} {/* mdx-disabled */} \ No newline at end of file diff --git a/src/content/docs/aws/integrations/continuous-integration/index.md b/src/content/docs/aws/integrations/continuous-integration/index.mdx similarity index 96% rename from src/content/docs/aws/integrations/continuous-integration/index.md rename to src/content/docs/aws/integrations/continuous-integration/index.mdx index c483e85c..4afa4a85 100644 --- a/src/content/docs/aws/integrations/continuous-integration/index.md +++ b/src/content/docs/aws/integrations/continuous-integration/index.mdx @@ -18,7 +18,7 @@ This enables you to incorporate LocalStack's local AWS cloud emulation in your C Let's assume that your team has an automated CI workflow into which you want to integrate end-to-end cloud testing with LocalStack. As an example, consider the following pipeline, which represents part of a simple CI workflow: -{{< figure src="localstack-in-ci.svg" alt="An example CI/CD workflow using LocalStack" width="90%">}} +![An example CI/CD workflow using LocalStack](/images/aws/localstack-in-ci.svg) The CI build is triggered by pushing code to a version control repository, like GitHub. The CI runner starts LocalStack and executes the test suite. diff --git a/src/content/docs/aws/integrations/continuous-integration/travis-ci.md b/src/content/docs/aws/integrations/continuous-integration/travis-ci.mdx similarity index 100% rename from src/content/docs/aws/integrations/continuous-integration/travis-ci.md rename to src/content/docs/aws/integrations/continuous-integration/travis-ci.mdx diff --git a/src/content/docs/aws/integrations/index.md b/src/content/docs/aws/integrations/index.mdx similarity index 91% rename from src/content/docs/aws/integrations/index.md rename to src/content/docs/aws/integrations/index.mdx index 291f4e82..478ca1e7 100644 --- a/src/content/docs/aws/integrations/index.md +++ b/src/content/docs/aws/integrations/index.mdx @@ -13,7 +13,7 @@ Cloud development has many facets and a rich ecosystem of tools to cover them. Whether you are using Infrastructure-as-Code (IaC) to manage your AWS infrastructure, or are developing applications using AWS SDKs like boto, LocalStack allows you to run your workflow completely on your local machine. -{{< figure src="integrations-overview.png" width="70%" alt="Sample of supported tools" >}} +![Sample of supported tools](/images/aws/integrations-overview.png) ## Integrations diff --git a/src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md b/src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.mdx similarity index 95% rename from src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md rename to src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.mdx index 023c04a5..a1420cec 100644 --- a/src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.md +++ b/src/content/docs/aws/integrations/infrastructure-as-code/cloud-custodian.mdx @@ -25,9 +25,9 @@ We will demonstrate how you can spin up an EC2 instance and tag it with the key To install Cloud Custodian, run the following command: -{{< command >}} -$ pip install c7n -{{< / command >}} +```bash +pip install c7n +``` After installing Cloud Custodian, you can configure a [custom LocalStack profile](http://docs.localstack.cloud/user-guide/integrations/aws-cli/#configuring-a-custom-profile) in your AWS CLI configuration file. @@ -37,13 +37,13 @@ You can create an EC2 instance using the `awslocal` wrapper script. You can use the [`RunInstances`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API to create an EC2 instance. The following example creates an EC2 instance with the tag `Custodian` (any value): -{{< command >}} -$ awslocal ec2 run-instances \ +```bash +awslocal ec2 run-instances \ --image-id ami-ff0fea8310f3 \ --count 1 \ --instance-type t3.nano \ --tag-specifications "ResourceType=instance,Tags=[{Key=Custodian,Value=AnyValue}]" -{{< / command >}} +``` You can navigate to the LocalStack logs to verify that the EC2 instance was created successfully: @@ -83,16 +83,17 @@ The above policy specifies the following: You can now run the Cloud Custodian policy using the following command: -{{< command >}} -$ custodian run \ +```bash +custodian run \ --output-dir=. custodian.yml \ --profile localstack -{{< / command >}} +``` + +:::tip -{{< callout "tip" >}} Alternatively, you can also set the `AWS_PROFILE=localstack` environment variable, in which case the `--profile localstack` parameter can be omitted in the commands above. -{{< /callout >}} +::: You should see the following output: @@ -117,11 +118,11 @@ These metrics show how many resources met the filters, the time taken to gather Certain filters and actions might produce their own metrics. To activate metric output, you must set the `metrics` flag running Cloud Custodian. -{{< command >}} -$ custodian run -s . \ +```bash +custodian run -s . \ --metrics aws custodian.yml \ --profile localstack -{{< / command >}} +``` You can access the CloudWatch metrics in the [LocalStack Web Application](https://app.localstack.cloud/inst/default/resources/cloudwatch). diff --git a/src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md b/src/content/docs/aws/integrations/infrastructure-as-code/crossplane.mdx similarity index 84% rename from src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md rename to src/content/docs/aws/integrations/infrastructure-as-code/crossplane.mdx index 3307e58d..7224e5fb 100644 --- a/src/content/docs/aws/integrations/infrastructure-as-code/crossplane.md +++ b/src/content/docs/aws/integrations/infrastructure-as-code/crossplane.mdx @@ -29,30 +29,30 @@ In the following, we provide a step-by-step guide for installing Crossplane in a ## Installing Crossplane in local Kubernetes Once your `kubectl` is configured to point to the local Kubernetes cluster, we first install Crossplane via `helm`: -{{}} -$ helm repo add crossplane-stable https://charts.crossplane.io/stable -$ helm repo update -$ helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace -{{}} +```bash +helm repo add crossplane-stable https://charts.crossplane.io/stable +helm repo update +helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace +``` The installation may take a few minutes. In parallel, we can install the `crossplane` command-line tool. -{{}} -$ curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | bash -... -$ sudo mv crossplane /usr/local/bin -{{}} +```bash +curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | bash +{/* ... */} {/* mdx-disabled */} +sudo mv crossplane /usr/local/bin +``` To confirm that the installation was successful, we can run these commands, which should yield output similar to the following: -{{}} -$ crossplane version -Client Version: v1.17.0 +```bash +crossplane version +{/* Client Version: v1.17.0 */} {/* mdx-disabled */} Server Version: v1.17.0 -$ kubectl get crds | grep crossplane -compositions.apiextensions.crossplane.io 2023-09-03T11:30:36Z +kubectl get crds | grep crossplane +{/* compositions.apiextensions.crossplane.io 2023-09-03T11:30:36Z */} {/* mdx-disabled */} configurations.pkg.crossplane.io 2023-09-03T11:30:36Z ... -{{}} +``` ### Installing the Crossplane AWS Provider @@ -62,8 +62,8 @@ For example, there is a separate provider for each individual AWS service (like In the following, we first install the AWS provider for S3. Note that you can copy/paste the entire multi-line command below into your terminal: -{{}} -$ cat <}} +``` We also install the AWS provider for SQS: -{{}} -$ cat <}} +``` After some time, the providers should get into healthy state, which can be confirmed via `kubectl get providers`: -{{}} -$ kubectl get providers +```bash +{/* kubectl get providers */} {/* mdx-disabled */} NAME INSTALLED HEALTHY PACKAGE AGE upbound-provider-family-aws True True xpkg.upbound.io/upbound/provider-family-aws:v0.40.0 2m provider-aws-s3 True True xpkg.upbound.io/upbound/provider-aws-s3:v0.40.0 2m provider-aws-sqs True True xpkg.upbound.io/upbound/provider-aws-sqs:v0.40.0 2m -{{}} +``` Next, we install a secret to define the test credentials for the AWS provider: -{{}} -$ cat <}} +``` Finally, we create an AWS `ProviderConfig` that references the secret created above, and defines a static `endpoint` pointing to the LocalStack URL `http://host.docker.internal:4566`: -{{}} -$ cat <}} +``` + +:::note -{{< callout >}} The endpoint `http://host.docker.internal:4566` in the listing above assumes that you are running Kubernetes in the local Docker engine, and that LocalStack is up and running and available on default port `4566`. -{{< /callout >}} +::: + +:::note -{{< callout >}} The Crossplane AWS provider currently requires us to specify the list of `services` for which the local `endpoint` is used as the target URL. Please make sure to extend this list accordingly if you're working with additional LocalStack services. -{{< /callout >}} +::: ### Deploying sample resources in LocalStack After the Crossplane AWS provider is properly installed and configured, we can proceed with creating some local resources. First, we create an S3 bucket named `crossplane-test-bucket`: -{{}} -$ cat <}} +``` If everything is wired up correctly, you should now see some activity in the LocalStack log outputs, where Crossplane starts deploying the S3 bucket against LocalStack. After some time, the bucket should be transitioning into `ready` state within Crossplane: -{{}} -$ kubectl get buckets +```bash +{/* kubectl get buckets */} {/* mdx-disabled */} NAME READY SYNCED EXTERNAL-NAME AGE crossplane-test-bucket True True crossplane-test-bucket 30s -{{}} +``` ... and the bucket it should also be visible when querying the local S3 buckets in LocalStack via [`awslocal`](https://github.com/localstack/awscli-local): -{{}} -$ awslocal s3 ls +```bash +{/* awslocal s3 ls */} {/* mdx-disabled */} 2023-09-03 15:18:47 crossplane-test-bucket -{{}} +``` We can repeat the same exercise for creating a local SQS queue named `crossplane-test-queue`: -{{}} -$ cat <}} +``` After some time, the queue should transition into `ready` state in Crossplane: -{{}} -$ kubectl get queues +```bash +{/* kubectl get queues */} {/* mdx-disabled */} NAME READY SYNCED EXTERNAL-NAME AGE crossplane-test-queue True True http://host.docker.internal:4566/000000000000/crossplane-test-queue 40s -{{}} +``` ... and the queue should be visible when listing the SQS queues in LocalStack: -{{}} -$ awslocal sqs list-queues +```bash +{/* awslocal sqs list-queues */} {/* mdx-disabled */} { "QueueUrls": [ "http://localhost:4566/000000000000/crossplane-test-queue" ] } -{{}} +``` ### Summary diff --git a/src/content/docs/aws/integrations/infrastructure-as-code/former2.md b/src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx similarity index 86% rename from src/content/docs/aws/integrations/infrastructure-as-code/former2.md rename to src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx index 7128c536..241908c9 100644 --- a/src/content/docs/aws/integrations/infrastructure-as-code/former2.md +++ b/src/content/docs/aws/integrations/infrastructure-as-code/former2.mdx @@ -52,32 +52,32 @@ Start your LocalStack container using your preferred method with the following e You can create local AWS resources using the AWS CLI and the `awslocal` wrapper script. For example, you can create a new S3 bucket, SQS queue, and DynamoDB table using the following commands: -{{< command >}} -$ awslocal s3 mb s3://my-bucket -$ awslocal sqs create-queue --queue-name my-queue -$ awslocal dynamodb create-table \ +```bash +awslocal s3 mb s3://my-bucket +awslocal sqs create-queue --queue-name my-queue +awslocal dynamodb create-table \ --table-name my-table \ --attribute-definitions AttributeName=id,AttributeType=S \ --key-schema AttributeName=id,KeyType=HASH \ --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 -{{< / command >}} +``` You can verify that the resources were created successfully by running the following command: -{{< command >}} -$ localstack logs - +```bash +localstack logs +{/* {/* {/* {/* */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} 2023-10-14T15:31:08.852 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.CreateBucket => 200 2023-10-14T15:31:09.356 INFO --- [ asgi_gw_0] localstack.request.aws : AWS sqs.CreateQueue => 200 2023-10-14T15:31:12.920 INFO --- [ asgi_gw_0] botocore.credentials : Found credentials in environment variables. 2023-10-14T15:31:13.332 INFO --- [ asgi_gw_0] localstack.utils.bootstrap : Execution of "require" took 2028.25ms 2023-10-14T15:31:13.712 INFO --- [ asgi_gw_0] localstack.request.aws : AWS dynamodb.CreateTable => 200 -$ awslocal s3 ls +awslocal s3 ls 2023-10-14 21:01:08 my-bucket -$ awslocal sqs list-queues +awslocal sqs list-queues { "QueueUrls": [ @@ -85,7 +85,7 @@ $ awslocal sqs list-queues ] } -$ awslocal dynamodb list-tables +awslocal dynamodb list-tables { "TableNames": [ @@ -93,7 +93,7 @@ $ awslocal dynamodb list-tables ] } -{{< / command >}} +``` ### Configure Former2 @@ -101,16 +101,16 @@ Navigate to the Former2 setup dashboard. Open the [**Credentials**](https://former2.com/#section-setup-credentials) tab and enter your IAM credentials. For LocalStack, you can just configure the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables as `test` and `test`, respectively. -Enter test credentials on Former2 Dashboard -

+![Enter test credentials on Former2 Dashboard](/images/aws/former2-credentials.png) +

Click on [**Continue to Parameters**](https://former2.com/#section-setup-parameters) and include your own CloudFormation stack parameters by adding them below. Click on [**Continue to Settings**](https://former2.com/#section-setup-settings) and navigate to **Custom Endpoints**. Toggle the **Use LocalStack Endpoint** switch to enable the LocalStack endpoint URL (`http://localhost:4566`). Click on [**Go to Dashboard**](https://former2.com/#section-dashboard) to complete the setup. -LocalStack endpoint toggle on Former2 Dashboard -

+![LocalStack endpoint toggle on Former2 Dashboard](/images/aws/former2-localstack-endpoint.png) +

You can now click on **Scan Account** button on the top-right corner of the dashboard to scan your LocalStack instance for resources. Once the scan is complete, you can select the resources you want to generate IaC outputs for. @@ -119,13 +119,13 @@ Once the scan is complete, you can select the resources you want to generate IaC Navigate to [S3](https://former2.com/#section-storage-s3), [DynamoDB](https://former2.com/#section-database-dynamodb), and [SQS](https://former2.com/#section-applicationintegration-sqs) to verify that the resources you created earlier are listed. -S3 Console on Former2 Dashboard -

+![S3 Console on Former2 Dashboard](/images/aws/former2-s3.png) +

You can select the resources you want to generate IaC outputs for and click on **Add Selected**. Finally, you can click on **Generate** on the top-left corner of the dashboard to generate the IaC outputs. -CloudFormation Output on Former2 Dashboard -

+![CloudFormation Output on Former2 Dashboard](/images/aws/former2-cloudformation-output.png) +

You can also choose to generate the IaC outputs in a different format by clicking on the various options available on the left-hand side of the dashboard. \ No newline at end of file diff --git a/src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md b/src/content/docs/aws/integrations/infrastructure-as-code/pulumi.mdx similarity index 94% rename from src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md rename to src/content/docs/aws/integrations/infrastructure-as-code/pulumi.mdx index de086c23..85245fc7 100644 --- a/src/content/docs/aws/integrations/infrastructure-as-code/pulumi.md +++ b/src/content/docs/aws/integrations/infrastructure-as-code/pulumi.mdx @@ -21,10 +21,11 @@ This guide will show you how to set up local AWS resources using both the `pulum ## `pulumilocal` wrapper script -{{< callout >}} +:::note + `pulumi-local` currently does not support the `aws-native` package as it relies on the AWS Cloud Control API. For additional information, refer to the [GitHub issue](https://github.com/localstack/localstack/issues/11523). -{{< /callout >}} +::: `pulumilocal` is a wrapper for the `pulumi` command line interface, facilitating the use of Pulumi with LocalStack. When executing deployment commands like `pulumilocal ["up", "destroy", "preview", "cancel"]`, the script configures the Pulumi settings for LocalStack and runs the specified Pulumi command. @@ -36,60 +37,62 @@ This setup simplifies the deployment of Pulumi stacks against LocalStack. Optionally, you can set environment variables to store state locally, avoiding cloud storage. -{{< command >}} -$ export PULUMI_CONFIG_PASSPHRASE=lsdevtest -$ export PULUMI_BACKEND_URL=file://`pwd`/myproj -{{< / command >}} +```bash +export PULUMI_CONFIG_PASSPHRASE=lsdevtest +export PULUMI_BACKEND_URL=file://`pwd`/myproj +``` + +:::note -{{< callout >}} For further options please consult the official documentation on available [environment variables](https://www.pulumi.com/docs/cli/environment-variables/) and [local backend](https://www.pulumi.com/docs/concepts/state/#local-filesystem). -{{< /callout >}} +::: ### Install the `pulumilocal` wrapper script You can install the `pulumilocal` wrapper script by running the following command: -{{< command >}} -$ pip install pulumi-local -{{< / command >}} +```bash +pip install pulumi-local +``` You can now use the `pulumilocal` command to interact with your Pulumi project. -{{< command >}} -$ pulumilocal --help - +```bash +pulumilocal --help +{/* {/* */} {/* mdx-disabled */} */} {/* mdx-disabled */} Pulumi - Modern Infrastructure as Code ... -{{< / command >}} +``` ### Create a new Pulumi project To start a new project, use these commands: -{{< command >}} -$ mkdir myproj -$ pulumilocal new aws-typescript -y -s lsdev --cwd myproj -{{< / command >}} +```bash +mkdir myproj +pulumilocal new aws-typescript -y -s lsdev --cwd myproj +``` + +:::tip -{{< callout "tip" >}} The `--cwd` option is unnecessary if you're already in the project directory. -{{< /callout >}} +::: ### Deploy the Pulumi stack Create and select the `lsdev` stack with: -{{< command >}} -$ pulumilocal stack select -c lsdev --cwd myproj -{{< / command >}} +```bash +pulumilocal stack select -c lsdev --cwd myproj +``` If you've just run the `new typescript` command, the stack is already selected. Deploy it with: -{{< command >}} -$ pulumilocal up --cwd myproj -{{< / command >}} +```bash +pulumilocal up --cwd myproj +``` ### Configuration @@ -109,10 +112,10 @@ The following section will provide detailed steps for this manual configuration, Start a new project with: -{{< command >}} -$ mkdir quickstart && cd quickstart -$ pulumi new aws-typescript -{{< / command >}} +```bash +mkdir quickstart && cd quickstart +pulumi new aws-typescript +``` We use the default configuration values: @@ -127,7 +130,7 @@ project description: (A minimal AWS TypeScript Pulumi program) Created project 'quickstart' Please enter your desired stack name. -To create a stack in an organization, use the format / (e.g. `acmecorp/dev`). +{/* To create a stack in an organization, use the format / (e.g. `acmecorp/dev`). */} {/* mdx-disabled */} stack name: (dev) Created stack 'dev' @@ -139,8 +142,8 @@ Installing dependencies... This will create the following directory structure. -{{< command >}} -$ tree -L 1 +```bash +tree -L 1 . ├── index.ts ├── node_modules @@ -149,7 +152,7 @@ $ tree -L 1 ├── Pulumi.dev.yaml ├── Pulumi.yaml └── tsconfig.json -{{< / command >}} +``` ### Configure the stack @@ -443,15 +446,15 @@ config: To deploy, ensure the S3 service is included in your configuration, start LocalStack, and run: -{{< command >}} -$ pulumi up -{{< / command >}} +```bash +pulumi up +``` After the update, check the S3 buckets with: -{{< command >}} -$ awslocal s3 ls -{{< / command >}} +```bash +awslocal s3 ls +``` You should see output similar to: diff --git a/src/content/docs/aws/integrations/infrastructure-as-code/terraform.md b/src/content/docs/aws/integrations/infrastructure-as-code/terraform.mdx similarity index 94% rename from src/content/docs/aws/integrations/infrastructure-as-code/terraform.md rename to src/content/docs/aws/integrations/infrastructure-as-code/terraform.mdx index 81d09eb7..323f8b0a 100644 --- a/src/content/docs/aws/integrations/infrastructure-as-code/terraform.md +++ b/src/content/docs/aws/integrations/infrastructure-as-code/terraform.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 1 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Introduction @@ -42,34 +43,34 @@ resource "aws_s3_bucket" "test-bucket" { To install the `tflocal` command, you can use `pip` (assuming you have a local Python installation): -{{< command >}} -$ pip install terraform-local -{{< / command >}} +```bash +pip install terraform-local +``` After installation, you can use the `tflocal` command, which has the same interface as the `terraform` command line. -{{< command >}} -$ tflocal --help - +```bash +tflocal --help +{/* {/* {/* */} {/* mdx-disabled */} */} {/* mdx-disabled */} */} {/* mdx-disabled */} Usage: terraform [global options] [args] ... -{{< / command >}} +``` ### Deploy the Terraform configuration Start your LocalStack container using your preferred method. Initialize Terraform using the following command: -{{< command >}} -$ tflocal init -{{< / command >}} +```bash +tflocal init +``` You can now provision the S3 bucket specified in the configuration: -{{< command >}} -$ tflocal apply -{{< / command >}} +```bash +tflocal apply +``` ### Configuration @@ -86,7 +87,8 @@ $ tflocal apply | `CUSTOMIZE_ACCESS_KEY` | - | Enables you to override the static AWS Access Key ID | | `AWS_ACCESS_KEY_ID` | `test` (`accountId`: 000000000000) | AWS Access Key ID to use for multi-account setups | -{{< callout >}} +:::note + While using `CUSTOMIZE_ACCESS_KEY`, following cases are taking precedence over each other from top to bottom: 1. If the `AWS_ACCESS_KEY_ID` environment variable is set. 2. If `access_key` is configured in the Terraform AWS provider. @@ -94,7 +96,7 @@ While using `CUSTOMIZE_ACCESS_KEY`, following cases are taking precedence over e 4. If the `AWS_DEFAULT_PROFILE` environment variable is set and configured. 5. If credentials for the `default` profile are configured. 6. If none of the above settings are present, it falls back to using the default `AWS_ACCESS_KEY_ID` mock value. -{{< /callout >}} +::: ## Manual Configuration @@ -147,10 +149,11 @@ For S3, this configuration resembles the following snippet, where we've chosen t } ``` -{{< callout >}} +:::note + If there are any difficulties resolving this DNS record, you can utilize `http://localhost:4566` as a fallback option in combination with setting `s3_use_path_style = true` in the provider. It's worth noting that the S3 service endpoint differs slightly from the other service endpoints due to AWS deprecating path-style based access for hosting buckets. -{{< /callout >}} +::: ### Final Configuration @@ -222,7 +225,8 @@ provider "aws" { } ``` -{{< callout >}} +:::note + To heuristically detect whether your Terraform configuration should be deployed against LocalStack, you can use the following snippet: ```hcl @@ -234,7 +238,7 @@ output "is_localstack" { It will detect whether the AWS account ID is `000000000000`, which is the default value for LocalStack. If you use a different account ID within LocalStack, you can customize the snippet accordingly. -{{< /callout >}} +::: ## CDK for Terraform @@ -253,8 +257,9 @@ It includes: Here is a configuration example to use with Python & TypeScript CDKTF configurations: -{{< tabpane >}} -{{< tab header="localstack_config.py" lang="py" >}} + + +```python AWS_CONFIG = { "region": "us-east-1", "endpoints": [ @@ -285,8 +290,10 @@ AWS_CONFIG = { } ], } -{{< /tab >}} -{{< tab header="localstack-config.ts" lang="ts" >}} +``` + + +```javascript export const AWS_CONFIG = { region: "us-east-1", endpoints: [ @@ -317,27 +324,33 @@ export const AWS_CONFIG = { }, ], }; -{{< /tab >}} -{{< /tabpane >}} +``` + + You can further import the above configuration in your project's code, and use it to configure the AWS provider: -{{< tabpane >}} -{{< tab header="main.py" lang="py" >}} + + +```python ... from localstack_config import AWS_CONFIG ... AwsProvider(self, "Aws", **AWS_CONFIG) ... -{{< /tab >}} -{{< tab header="main.ts" lang="ts" >}} +``` + +{/* {/* {{< tab header="main.ts" lang="ts" >}} */} {/* mdx-disabled */} */} {/* mdx-disabled */} + +```javascript ... import { AWS_CONFIG } from "./localstack-config"; ... new AwsProvider(this, "aws", AWS_CONFIG); ... -{{< /tab >}} -{{< /tabpane >}} +``` + + ### Getting started @@ -359,8 +372,9 @@ For TypeScript: Create a new directory named `cdktf-localstack` and initialize a new CDKTF project using the following command: -{{< tabpane >}} -{{< tab header="Python" lang="py" >}} + + +```python $ cdktf init ... ? Do you want to continue with Terraform Cloud remote state management? No @@ -374,8 +388,10 @@ Initializing a project using the python template. Note: You can always add providers using 'cdktf provider add' later on ? What providers do you want to use? aws ... -{{< /tab >}} -{{< tab header="TypeScript" lang="ts" >}} +``` + + +```javascript $ cdktf init ... ? Do you want to continue with Terraform Cloud remote state management? No @@ -389,24 +405,29 @@ Initializing a project using the typescript template. Note: You can always add providers using 'cdktf provider add' later on ? What providers do you want to use? aws ... -{{< /tab >}} -{{< /tabpane >}} +``` + + (Optional) If necessary, we can install the AWS provider separately for CDKTF, by running the following command: -{{< tabpane >}} -{{< tab header="Python" lang="py" >}} + + +```python $ pipenv install cdktf-cdktf-provider-aws -{{< /tab >}} -{{< tab header="TypeScript" lang="ts" >}} + + +```javascript $ npm install @cdktf/provider-aws -{{< /tab >}} -{{< /tabpane >}} +``` + + Add the following code to import the AWS provider and create a new S3 bucket in the relevant file: -{{< tabpane >}} -{{< tab header="main.py" lang="py" >}} + + +```python # !/usr/bin/env python from constructs import Construct @@ -435,8 +456,10 @@ app = App() MyStack(app, "cdktf-example-python") app.synth() -{{< /tab >}} -{{< tab header="main.ts" lang="ts" >}} +``` + + +```javascript import { Construct } from "constructs"; import { App, TerraformStack } from "cdktf"; import { AwsProvider } from "@cdktf/provider-aws/lib/provider"; @@ -464,14 +487,15 @@ class MyStack extends TerraformStack { const app = new App(); new MyStack(app, "example"); app.synth(); -{{< /tab >}} -{{< /tabpane >}} +``` + + Run the following command to compile and deploy the CDKTF stack to LocalStack: -{{< command >}} -$ cdktf synth && cdktf deploy -{{< /command >}} +```bash +cdktf synth && cdktf deploy +``` You should see the following output: @@ -489,9 +513,9 @@ example Verify that the S3 bucket has been created successfully by running the following command: -{{< command >}} -$ awslocal s3 ls -{{< /command >}} +```bash +awslocal s3 ls +``` Your CDKTF stack is now successfully deployed to LocalStack. You can now start using CDKTF to create and manage your AWS resources on LocalStack. @@ -499,8 +523,8 @@ Your CDKTF stack is now successfully deployed to LocalStack. You can now start u OpenTofu is an open-source fork of Terraform acting as a drop-in replacement for Terraform, as it's compatible with Terraform versions 1.5.x and most of 1.6.x. You can use OpenTofu with LocalStack to create and manage your AWS resources with your pre-existing Terraform configurations. You can use the `TF_CMD` environment variable with `tflocal` to specify the `tofu` binary to call, or setup a manual configuration to point the individual services to LocalStack. -{{< command >}} -$ TF_CMD=tofu tflocal --help +```bash +TF_CMD=tofu tflocal --help Usage: tofu [global options] [args] @@ -509,7 +533,7 @@ The primary workflow commands are given first, followed by less common or more advanced commands. ... -{{< /command >}} +``` ## Terragrunt diff --git a/src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md b/src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.mdx similarity index 82% rename from src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md rename to src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.mdx index 24bca6a9..307a8b1d 100644 --- a/src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.md +++ b/src/content/docs/aws/integrations/messaging/selfmanaged-kafka-cluster.mdx @@ -6,7 +6,7 @@ sidebar: order: 1 --- -LocalStack Pro supports [AWS Managed Streaming for Kafka (MSK)]({{< ref "user-guide/aws/msk" >}}) and you can create Kafka clusters directly through the MSK API that will run in LocalStack. +{/* LocalStack Pro supports [AWS Managed Streaming for Kafka (MSK)]({{< ref "user-guide/aws/msk" >}}) and you can create Kafka clusters directly through the MSK API that will run in LocalStack. */} {/* mdx-disabled */} In some cases, you may want to run your own self-managed Kafka cluster and integrate it with your applications, like triggering Lambdas from a Kafka stream running in your own cluster. The Lambda integration with self-managed Kafka clusters is also a LocalStack Pro feature. @@ -16,14 +16,14 @@ You can find the [example Docker Compose](docker-compose.yml) file which contain 1. Run Docker Compose: -{{< command >}} -$ docker-compose up -d -{{< / command >}} +```bash +docker-compose up -d +``` 2. Create the Lambda function: -{{< command >}} -$ awslocal lambda create-function \ +```bash +awslocal lambda create-function \ --function-name fun1 \ --handler lambda.handler \ --runtime python3.8 \ @@ -50,30 +50,30 @@ $ awslocal lambda create-function \ "LastUpdateStatus": "Successful", "PackageType": "Zip" } -{{< / command >}} +``` 3. Create an example secret: -{{< command >}} -$ awslocal secretsmanager create-secret --name localstack +```bash +awslocal secretsmanager create-secret --name localstack { "ARN": "arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI", "Name": "localstack", "VersionId": "32bbb8e2-46ee-4322-b3d5-b6459d54513b" } -{{< / command >}} +``` 4. Create an example Kafka topic: -{{< command >}} -$ docker exec -ti kafka kafka-topics --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic t1 +```bash +docker exec -ti kafka kafka-topics --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic t1 Created topic t1. -{{< / command >}} +``` 5. Create the event source mapping to your local kafka cluster: -{{< command >}} -$ awslocal lambda create-event-source-mapping \ +```bash +awslocal lambda create-event-source-mapping \ --topics t1 \ --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:000000000000:secret:localstack-TDIuI \ --function-name arn:aws:lambda:us-east-1:000000000000:function:fun1 \ @@ -103,6 +103,6 @@ $ awslocal lambda create-event-source-mapping \ } } } -{{< / command >}} +``` 6. Additionally visit `http://localhost:8080` for Kowl's UI. \ No newline at end of file diff --git a/src/content/docs/aws/integrations/testing/hyperexecute.md b/src/content/docs/aws/integrations/testing/hyperexecute.mdx similarity index 100% rename from src/content/docs/aws/integrations/testing/hyperexecute.md rename to src/content/docs/aws/integrations/testing/hyperexecute.mdx diff --git a/src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.md b/src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.mdx similarity index 94% rename from src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.md rename to src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.mdx index c35d91ce..fe1982f4 100644 --- a/src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.md +++ b/src/content/docs/aws/integrations/testing/lambdatest-hyperexecute.mdx @@ -10,11 +10,12 @@ sidebar: It supports a wide range of testing frameworks and integrates seamlessly with CI/CD pipelines, such as GitHub Actions. You can use HyperExecute to run your LocalStack tests on your local machine or in the CI pipeline using a single configuration file. -{{< callout >}} +:::note + LambdaTest provides specialized runners for LocalStack. The default runners don't provide a Docker socket, which is required for LocalStack to work properly. If you want to use LocalStack with HyperExecute, you need to get in touch with the LambdaTest team to get access to the specialized runners. -{{< /callout >}} +::: ## Getting started @@ -49,10 +50,11 @@ pre: The above minimal configuration file starts LocalStack and creates an S3 bucket, SQS queue, and SNS topic. -{{< callout >}} +:::note + To use the LocalStack Pro image, configure a LocalStack Auth Token by appending `LOCALSTACK_AUTH_TOKEN=${{ .secrets.LOCALSTACK_AUTH_TOKEN }}` to the `localstack start` command. Subsequently, you need to add your LocalStack Auth Token to your HyperExecute Portal as a secret. -{{< /callout >}} +::: ### Enabling test execution on HyperExecute @@ -86,11 +88,11 @@ HyperExecute will automatically detect the tests and run them in parallel. You can run the tests locally using the following command: -{{< command >}} -$ hyperexecute --user '' --key '' --config he.yaml -{{< /command >}} +```bash +{/* hyperexecute --user '' --key '' --config he.yaml */} {/* mdx-disabled */} +``` -Swap `` and `` with your HyperExecute username and access key. +{/* Swap `` and `` with your HyperExecute username and access key. */} {/* mdx-disabled */} You can find your access key in the HyperExecute Portal. ### Running the tests in the CI pipeline diff --git a/src/content/docs/aws/integrations/testing/testcontainers.md b/src/content/docs/aws/integrations/testing/testcontainers.mdx similarity index 88% rename from src/content/docs/aws/integrations/testing/testcontainers.md rename to src/content/docs/aws/integrations/testing/testcontainers.mdx index af8b820b..c8fffc15 100644 --- a/src/content/docs/aws/integrations/testing/testcontainers.md +++ b/src/content/docs/aws/integrations/testing/testcontainers.mdx @@ -5,6 +5,7 @@ template: doc sidebar: order: 1 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; ## Overview @@ -26,58 +27,79 @@ with LocalStack. ### Installing the Localstack module -{{< tabpane >}} -{{< tab header="NuGet" lang="shell">}} + + +```sh dotnet add package Testcontainers.LocalStack --version 3.0.0 -{{< /tab >}} -{{< tab header="Go" lang="go">}} +``` + + +```go go get github.com/testcontainers/testcontainers-go/modules/localstack -{{< /tab >}} -{{< tab header="Java (Maven)" lang="xml">}} +``` + + +```java org.testcontainers localstack 1.18.0 test -{{< /tab >}} -{{< tab header="Java (Gradle)" lang="gradle">}} +``` + + +```java testImplementation 'org.testcontainers:localstack:1.18.0' -{{< /tab >}} -{{< tab header="NodeJS (npm)" lang="npm">}} +``` + + +```javascript npm i @testcontainers/localstack -{{< /tab >}} -{{< /tabpane >}} +``` + + ### Obtaining a LocalStack container -{{< tabpane >}} -{{< tab header=".NET" lang="csharp">}} + + +```csharp var localStackContainer = new LocalStackBuilder().Build(); await localStackContainer.StartAsync() .ConfigureAwait(false); -{{< /tab >}} -{{< tab header="Go" lang="go">}} +``` + + +```go container, err := localstack.StartContainer(ctx, localstack.NoopOverrideContainerRequest) -{{< /tab >}} -{{< tab header="Java" lang="java">}} +``` + + +```java LocalStackContainer localstack = new LocalStackContainer(DockerImageName.parse("localstack/localstack:3")); -{{< /tab >}} -{{< tab header="NodeJS (typescript)" lang="typescript">}} +``` + + +```javascript const localstack = new LocalstackContainer("localstack/localstack:3").start() -{{< /tab >}} -{{< /tabpane >}} +``` + + ## Configuring the AWS client -{{< tabpane >}} -{{< tab header=".NET" lang="csharp">}} + + +```csharp var config = new AmazonS3Config(); config.ServiceURL = localStackContainer.GetConnectionString(); using var client = new AmazonS3Client(config); -{{< /tab >}} -{{< tab header="Go" lang="go">}} +``` + + +```go func s3Client(ctx context.Context, l *localstack.LocalStackContainer) (*s3.Client, error) { // the Testcontainers Docker provider is used to get the host of the Docker daemon provider, err := testcontainers.NewDockerProvider() @@ -119,14 +141,16 @@ func s3Client(ctx context.Context, l *localstack.LocalStackContainer) (*s3.Clien return client, nil } -{{< /tab >}} -{{< tab header="Java" lang="java">}} +``` + + +```java S3Client s3 = S3Client.builder() .endpointOverride(localstack.getEndpoint()) .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(localstack.getAccessKey(), localstack.getSecretKey()))) .region(Region.of(localstack.getRegion())) .build(); -{{< /tab >}} + {{< tab header="NodeJS (typescript)" lang="typescript">}} const awsConfig = { endpoint: localstack.getConnectionUri(), @@ -137,8 +161,9 @@ const awsConfig = { region: "eu-central-1", }; const s3 = S3Client(awsConfig); -{{< /tab >}} -{{< /tabpane >}} +``` + + ## Special Setup for using RDS diff --git a/src/content/docs/snowflake/integrations/pulumi.md b/src/content/docs/snowflake/integrations/pulumi.md index e3e5417d..6a493da7 100644 --- a/src/content/docs/snowflake/integrations/pulumi.md +++ b/src/content/docs/snowflake/integrations/pulumi.md @@ -37,7 +37,7 @@ $ npm install @pulumi/snowflake You can now use Pulumi to create Snowflake resources using the Snowflake provider. The following example shows how to create a Snowflake database using Pulumi: -```typescript +```javascript import * as snowflake from "@pulumi/snowflake"; const simple = new snowflake.Database("simple", {