From e2ddc4d5aa9976d7ad4324858de1165a7a4068a7 Mon Sep 17 00:00:00 2001 From: Rowena Date: Tue, 1 Apr 2025 17:57:52 +0200 Subject: [PATCH 1/5] feat(mnq): add branch for queues --- .../assets/scaleway-nats-create-account.webp | Bin 19190 -> 0 bytes pages/nats/assets/scaleway-nats-creds.webp | Bin 23498 -> 0 bytes pages/nats/assets/scaleway-nats-overview.webp | Bin 38086 -> 0 bytes .../assets/scaleway-nats-create-account.webp | Bin 19190 -> 0 bytes .../nats/how-to/assets/scaleway-nats-creds.webp | Bin 23498 -> 0 bytes .../how-to/assets/scaleway-nats-overview.webp | Bin 38086 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pages/nats/assets/scaleway-nats-create-account.webp delete mode 100644 pages/nats/assets/scaleway-nats-creds.webp delete mode 100644 pages/nats/assets/scaleway-nats-overview.webp delete mode 100644 pages/nats/how-to/assets/scaleway-nats-create-account.webp delete mode 100644 pages/nats/how-to/assets/scaleway-nats-creds.webp delete mode 100644 pages/nats/how-to/assets/scaleway-nats-overview.webp diff --git a/pages/nats/assets/scaleway-nats-create-account.webp b/pages/nats/assets/scaleway-nats-create-account.webp deleted file mode 100644 index 12653712c9cbc9bd0feebd3cb7dd5c6f6303756b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19190 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

KiG)VMT`< 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 z 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 J_umRG0svKfuu1>` diff --git a/pages/nats/assets/scaleway-nats-overview.webp b/pages/nats/assets/scaleway-nats-overview.webp deleted file mode 100644 index c2240019b0f6f86d600f1628707c08c0e62e2d2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38086 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 diff --git a/pages/nats/how-to/assets/scaleway-nats-create-account.webp b/pages/nats/how-to/assets/scaleway-nats-create-account.webp deleted file mode 100644 index 12653712c9cbc9bd0feebd3cb7dd5c6f6303756b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19190 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

KiG)VMT`< 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 z zM1)kie01fWInEEB=EUzBM1RHe5vB1h*EUV9qZ$8C&(0Q{l^PdGV;L@z+GXp?VC?{K zDwM8;a`d^_yrf2)c1V%c>wY0jG!c*@znSHGgGI#_~Y=) zig`KUm_`--M?XkJXf*Yx=W7;gHikx`K17uJ+C?LnAcH*>Z+3BRw0ecGvWE7Zd%IGW zgXUIvoYcW`_ocC=sO`DjYA{m*J0D~`q4oX0Y8 z_|M9*B9Zl!BM1KM?<^3Gw7i|_l6ix~o*1h&ckP{(`g(%C^IY2+TYq@*m}QPFhf+LT z4BYO!&x;LOVh3l9#!GMv>$nPkww4;MemGe$p@j!Lo1|aL>erAEpYwEtV2o-ff%?KuzDjDi=NB;s%(J zQlr#vX6`W)PwKI7!OM1B_Pxh5en?&Pxw%}DyOjWjUH0eICu9qA4>D9!#Jati;6&d_ z{+70xB?}QDQLY5ge01fWwU%zRim}PmD=^pPdwQQ%QJR$;_S;{CV}k{4 zOc$H;S-4lz^y>ca^40gR0_+pBul_t?s_`hW=DjWyD;Vz#vKTNTZlJoXlG$(1dYnQL z@3(p4-gB&G4&xQPfr z3CB#b;6EnvhOhc_bsTeTRbSivnx$7`*kF|m8J99p2Rtd$3 z_x6AY4F;c5|L{Nt38W(Eis2JC|8T(FSG%@3g7}T!NKoBnJ*a?UxYL=OSa$!rmlV9} zT?{zZ`Da^%%X1W4<4M8c-Nxw{BrQERo3AS*OdmY3&z18$k}^2f2m6cXhU37pY*vtB z1rK`wI2}e;yWPhnnE?{dv#utyh3mS%M#TjH*6*h^PJ3eBC4p2VRc_piS)LOW8LKT5 zpx<3o+A)y8*&V1__ZKwij2y)VA4qj+m3eBxyAUh@5>mhf+Lz3=9v84Us8B zy$v-3=yKpEA^w0`XM=8B-Y;nw*ykk+g6b*fUM6EgU+X2$({s-@oE}Y;{^eF+0Z@tU4WtBIzkv1GP%}RJ;jDmJr~s6}mF~1IZV6v1z7Bej-k(EB<1t-$VJRu@(;W^SxVyvlg0 z?>oZtDa^C&kSXtTsSDn%I(!lLR)T0s+R?;Z-A0Y`JUHN|- zc9Ffr(jNa4&<6hl%W_*4rG*4eN2MzIrDs}4ou=F@woU_rLQoYqk2t0*6WZvQocoWk zB}2IpUligLom>Em1tDr|Dai-ckY`_DAN%=Eoy#%vn8W41H{Y1Z(DKF4&a07maAfHvJnVjh z02t5HT12gpv9}_-WH@Ac_rKY9ZTJ#}Qxdx9i7)k9h({?NJ_d&CBB+}8FSfX&*r4HO zyL%qatEl|*18X%f(n5lwYQ|LMYKnWPvt30#21Oaj+&wJY2^e6@d0D!i8SNkWpmJdo zwNPj-`d%NMx3*XowSr3Q`yw+n-O4?sp-ols6MTay3kX$$gKC%m~*blYTLz1Tos z?4eyWwn-1ZSBGQGNlt4qg;(LEt*{iEHV*9CHKIlRHE<1<^}Lk0uCcA09uMn5wVY&q zbk1*6f@+FbH%IJw&edRvsKCbUZlP_|+@h=xA6fVaN%-i>Ki?d(_Ya1Kkzb{o+sRmq z{X$sqUnn(D43B2+51N=yu1a-X(Hh=&{wdf|fVGF?`Z0&j9v0n|*QG6PCNLEfFPak9voc<9?l`_~z%RV?OWN*c!EQWk&OxuSDc4S^%KaoCeLgs3a^MfCYkRaZ1ebX*5UdjQ$K<~w@=kjKi{jYqQD zkkvww@x8&V(7H+#^DNyZGcxyTUHmIStMn3WqwDS=$6x%0LOeta>_(xvJ2X!IyhhSB zn%X9{5%ZF>)UdfW=}K^dMqN*^N3~ogk!MrQw>A4k79OzNeQoa9xnArn3!10}38V&6 zU*13X!Qu{}5`zitN9~X5nIvDj$0^Q6Rp#;?wv2HlEBHC_gJ7`pzCKFHEr^t|*vb*^R zN%-i>Ke!s1wIF^^e^Xohj|DJ=W6&tWcgjD|K+Z1ZBA81`}0dy5wFuN8q4a&pn> z4^VUs{q<>4f#Cbr*}(+%=v-m6gtII<6k*z44?EH7Bmey3)n`LY; zcPp*bj3@UWOfJ_`4GHlc0Mw$3n_4_=x|D~{14{^ZB4-p6s8U9RW^<3)jZ7k8XI@&s ztV*8|mc-{#>qnMCBvgqNU1|o1IJ(0A17Y3#N61OYTTa1&y^{A z14%8ejVO7NREPcZBgziek1T~qs1hr>-1r+|dHj0d=)j8$4lJ{v0m_cDh@^tax9?E> zUX_P^P|FFD_+_l(g*WDeBqvE5&O~_kPmPzytA8TY??MjGoH=87kBc)P8-DIvec;5A z&@h}+=L{Y;ya+dtMgD*3s#*aIt#6DC_)4o*`wI5SRnKD}i+MV=Dqv&pH=>T=0+VeEY{bl zZg)N^3E|C*kl6;h>-FHG=U}#KwQsj4+&>jw9D- zEoQhw6-izTi)=Ha}pFL5)T+_el+qv2#xqANLeecJp zCpj@f#_q~Hltk8R9^H2JC&+(}sz zBeXvpHk6ts*PR-^?*=2Xp+zy3vbHE$mZQ8p#f!Q*-6P@DV?$ zE)p5OTn0jHBo>4!oXD>t!@v8zy;duKDgG%LJ72Tf5yBhuutd3kD!e>i{bM&Aj}^4H z+waxD_l0NcjeCTt%_};C^dp=rVqckeTk-lq}lzF&Vtvm_--fFMIytO zD?^Em#DY+T6ZutS_=FdHyQ&f{7~~h^EYDS>@Ww#7e=58@Uj1XKiJ(gzN^$v&_>8lZ z)_Aw`PO0b&(gW0X5VmD6X1S;= z{W?!R*j4cpKP*qb{vTgOID^bYnR*O0L{+>yNkD0T07Qt~>YVhBk9C{Jz0Yz5{_oG_ zm$;|<($%|_0KQxXLTn^VK&o&eKU84YB)A_ai!bvr-yW|0rIBpN1if*5O^J+0fgAhM^;Y$`X}|-YSnu+11R@ee_;MKtv5_zVslti;V9^gNDs1JRoYWPl z{h*!_LDm8Eu+TsQx>GqD@9wcs?w<-Tk5K=RaFca~9pk=C>jn7(O=#1Qp8Jo`#Y1_r z9z+JeH6R?zxoqm3!LuXi550iR@5pw|q*ek)!bwgrTZh!F#_c}dFz<>l>&~8Y-z6%i z7E?u+F`6KpR~pGcg7umBb4wD+8Dx}f%G6^TqpDJHC*>cbw7)&UOr5Zzcg2&oIv5Sq zMKQ{I8p*BT;}amw^x)i3OnwC-Q@=A68U0 z0;LztQ~^IGOV}9NP3)^`rt5ikkA-soRCsxW`iFlSefI5*Ubd|h#XO6b92%j%#Z58< zj_nC`!#SvQ1`k;4p>akBD2B1Y2NK|H644BF3W7$VTbeH7;q9#}t2%yl3X4uYZtIPg zx|Q*wq4QTLXOR6j-w0EWX^g5$$(@wnFQc?Sdn!>6bPIw;S!Zbq;o;0CWL3hkA>8Qf z-MHzLbp^-tl5@y)$xtN386YE3fG-ySD6x@P5UOw@KSn>SIDEu?%=Yr^g&=1IuDdh|dHq4TeLFrBE3&&Rf&x`jT?>~+KTYZdHZ1tgkvDHVE##SGw z99M<+AMZcjf6qo=U5HeMU>OLOh5)xyl{ z`;V7gFb!rEzBLwy3NYE3DOr(7PRsk^rT2o^*!A#z$*xf8>%R5Z*s~nDZ*=8xwi1p< zR#7pSRhwj$qXWZ3v;y zqU62~ANMjqiuUtu!6b~0jST|6<3B&=Of=rPEE5Q(lOq%_Rg0)>h|njNb;^C|?H-xd z?4swBrO})WUgnIVVo2?OT%Zj#yYTrT(ug<-i;u*y%UKr%T2i^*N-lg%?*hk4%46AMb#qp- zVs8_l=B`A&!|HQ<^454XPcfS3xqjwNTRW^>yV3rT~x(WU7!zJNh800IqWIh>G!c&wd4s2uQZPTdYd`fzIaJY z7ErtGA(UP6uk+PnW7orvr9P2G?|Rpr;rES`-<209Js@%VoHSP?zqPx1T?k)`{>#?E zNuQGl>XuLN$|dbT?PY+Joo8EKO)CiaYj?inOEoN7mGEv-?tIoW=5^Z58tmAo1NjaA zUz=$uGce|EvF%wRK5JeVoDJ9ia+UMFasIj@Hg+xQ=~TcO^U4pebjRK|y5cZfF~=jTs2t3! zlViT)AK~l&-~7FF;mror?Y_T~Po)>X@tSgj+44Dse65R)B(XOs_Oi;kg#wy(L2(B( zQAQT`%&JGvl?PLBw&ciLjTd+>X%m#SgXv1rhzFTn_)pd$*yW~CBXPI@la+~*7mDUI zdsHvF6X`r?^sYxJo~sn4vLV9U@vMdqWedHs*w|p29;}B{*lL>rY_%y0w%Wo8TWvUptHS$_ J_umRG0svKfuu1>` diff --git a/pages/nats/how-to/assets/scaleway-nats-overview.webp b/pages/nats/how-to/assets/scaleway-nats-overview.webp deleted file mode 100644 index c2240019b0f6f86d600f1628707c08c0e62e2d2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38086 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 From bc5b43afc516ee8a2df3eaf4b0c2306ce3cfec9a Mon Sep 17 00:00:00 2001 From: Rowena Date: Wed, 2 Apr 2025 17:27:01 +0200 Subject: [PATCH 2/5] feat(queues): add queues doc --- menu/navigation.json | 44 +++ pages/nats/how-to/monitor-queues-cockpit.mdx | 42 +++ pages/queues/api-cli/connect-aws-cli.mdx | 129 ++++++++ pages/queues/api-cli/index.mdx | 8 + pages/queues/api-cli/python-node-queues.mdx | 230 ++++++++++++++ pages/queues/api-cli/queues-aws-cli.mdx | 68 ++++ pages/queues/concepts.mdx | 84 +++++ pages/queues/faq.mdx | 30 ++ pages/queues/how-to/create-credentials.mdx | 49 +++ pages/queues/how-to/create-manage-queues.mdx | 102 ++++++ pages/queues/how-to/index.mdx | 8 + pages/queues/how-to/manage-credentials.mdx | 58 ++++ pages/queues/index.mdx | 73 +++++ pages/queues/quickstart.mdx | 97 ++++++ pages/queues/reference-content/index.mdx | 8 + .../queues/reference-content/limitations.mdx | 22 ++ .../reference-content/queues-overview.mdx | 57 ++++ .../reference-content/queues-support.mdx | 291 ++++++++++++++++++ 18 files changed, 1400 insertions(+) create mode 100644 pages/nats/how-to/monitor-queues-cockpit.mdx create mode 100644 pages/queues/api-cli/connect-aws-cli.mdx create mode 100644 pages/queues/api-cli/index.mdx create mode 100644 pages/queues/api-cli/python-node-queues.mdx create mode 100644 pages/queues/api-cli/queues-aws-cli.mdx create mode 100644 pages/queues/concepts.mdx create mode 100644 pages/queues/faq.mdx create mode 100644 pages/queues/how-to/create-credentials.mdx create mode 100644 pages/queues/how-to/create-manage-queues.mdx create mode 100644 pages/queues/how-to/index.mdx create mode 100644 pages/queues/how-to/manage-credentials.mdx create mode 100644 pages/queues/index.mdx create mode 100644 pages/queues/quickstart.mdx create mode 100644 pages/queues/reference-content/index.mdx create mode 100644 pages/queues/reference-content/limitations.mdx create mode 100644 pages/queues/reference-content/queues-overview.mdx create mode 100644 pages/queues/reference-content/queues-support.mdx diff --git a/menu/navigation.json b/menu/navigation.json index ff0ac4f441..d36bf122a5 100644 --- a/menu/navigation.json +++ b/menu/navigation.json @@ -4147,7 +4147,11 @@ "items": [ { "label": "Overview", +<<<<<<< HEAD "slug": "../nats" +======= + "slug": "../queues" +>>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "label": "Concepts", @@ -4164,11 +4168,15 @@ { "items": [ { +<<<<<<< HEAD "label": "Create a NATS account", "slug": "create-account" }, { "label": "Create NATS credentials", +======= + "label": "Create credentials", +>>>>>>> 9860710e2 (feat(queues): add queues doc) "slug": "create-credentials" }, { @@ -4180,8 +4188,13 @@ "slug": "monitor-nats-cockpit" }, { +<<<<<<< HEAD "label": "Delete a NATS account", "slug": "delete-account" +======= + "label": "Monitor Queues with Cockpit", + "slug": "monitor-queues-cockpit" +>>>>>>> 9860710e2 (feat(queues): add queues doc) } ], "label": "How to", @@ -4190,12 +4203,29 @@ { "items": [ { +<<<<<<< HEAD "label": "NATS API Reference", "slug": "https://www.scaleway.com/en/developers/api/messaging-and-queuing/nats-api/" }, { "label": "Using the NATS CLI", "slug": "nats-cli" +======= + "label": "Queues API Reference", + "slug": "https://www.scaleway.com/en/developers/api/messaging-and-queuing/sqs-api/" + }, + { + "label": "Connecting Queues to the AWS-CLI", + "slug": "connect-aws-cli" + }, + { + "label": "Using Queues with the AWS-CLI", + "slug": "queues-aws-cli" + }, + { + "label": "Using Go, Python or Node.js with Queues", + "slug": "python-node-queues" +>>>>>>> 9860710e2 (feat(queues): add queues doc) } ], "label": "API/CLI", @@ -4204,8 +4234,17 @@ { "items": [ { +<<<<<<< HEAD "label": "NATS overview", "slug": "nats-overview" +======= + "label": "Queues overview", + "slug": "queues-overview" + }, + { + "label": "Queues - supported actions", + "slug": "queues-support" +>>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "label": "Limitations", @@ -4216,8 +4255,13 @@ "slug": "reference-content" } ], +<<<<<<< HEAD "label": "NATS", "slug": "nats" +======= + "label": "Queues", + "slug": "queues" +>>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "items": [ diff --git a/pages/nats/how-to/monitor-queues-cockpit.mdx b/pages/nats/how-to/monitor-queues-cockpit.mdx new file mode 100644 index 0000000000..0b42611856 --- /dev/null +++ b/pages/nats/how-to/monitor-queues-cockpit.mdx @@ -0,0 +1,42 @@ +--- +meta: + title: How to monitor Queues with Scaleway Cockpit + description: Monitor your Queues services with Scaleway Cockpit. This guide helps you track performance to manage your messaging services efficiently. +content: + h1: How to monitor Queues with Scaleway Cockpit + paragraph: Monitor your Queues services with Scaleway Cockpit. This guide helps you track performance to manage your messaging services efficiently. +tags: messaging queuing queues cockpit metrics observability +categories: + - serverless +dates: + validation: 2025-04-03 + posted: 2025-04-03 +--- + +You can view metrics for your Queues services via [Scaleway Cockpit](/cockpit/quickstart/). This allows you to monitor your queues and messages at a glance. There are two steps to complete to view your metrics for the first time with Cockpit: + +1. Generate your Grafana credentials +2. Access the product's metrics dashboard + +These steps are described below. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +## How to generate Grafana credentials + +To view your metrics with Cockpit, you will use a Grafana dashboard which is accessible from the Scaleway console. First, you must create a user and their associated credentials (a username and password) for Grafana. This can be done directly from the Scaleway console, [by following this procedure](/cockpit/how-to/retrieve-grafana-credentials/). + +## How to access your Queues dashboard and view your metrics + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Click the **Metrics** tab. + +3. Click **Open Grafana metrics dashboard**. + +4. Enter your Grafana username and password to log in. + + You are directed to the Queues dashboard, where you can view all your metrics. \ No newline at end of file diff --git a/pages/queues/api-cli/connect-aws-cli.mdx b/pages/queues/api-cli/connect-aws-cli.mdx new file mode 100644 index 0000000000..251ca68d3e --- /dev/null +++ b/pages/queues/api-cli/connect-aws-cli.mdx @@ -0,0 +1,129 @@ +--- +meta: + title: Connecting Scaleway Queues to the AWS-CLI + description: This page explains how to connect Scaleway Queues to the AWS-CLI +content: + h1: Connecting Scaleway Queues to the AWS-CLI + paragraph: This page explains how to connect Scaleway Queues to the AWS-CLI +tags: messaging queues sqs aws-cli cli aws sdk python boto +categories: + - serverless +dates: + validation: 2025-04-02 + posted: 2025-04-02 +--- + +The AWS-CLI is an open-source tool built on top of the AWS SDK for Python (Boto) that provides commands for interacting with AWS services. With minimal configuration, you can start using the AWS-CLI with Scaleway Queues. This allows you to create, list and manage your queues, send messages and much more, all from your command line. + +This guide shows you how to install the AWS-CLI and configure it to connect to Scaleway Queues. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- Valid [credentials](/queues/how-to/create-credentials/) for Scaleway Queues + + This page assumes you will use the AWS-CLI v1. + + +## How to install the AWS-CLI + +To interact with Scaleway Queues, both `aws-cli` and `awscli-plugin-endpoint` need to be installed. The `awscli-plugin-endpoint` is a useful plugin to help people more easily access third-party providers such as Scaleway. + +Install both `aws-cli` and `awscli-plugin` using `pip`. + +``` +pip3 install awscli +pip3 install awscli-plugin-endpoint +``` + +## How to configure the AWS-CLI + +Now you have installed the AWS-CLI, you need to configure it for use with Scaleway Queues. + +1. Create a file named `~/.aws/config` by running the following command: + ``` + aws configure set plugins.endpoint awscli_plugin_endpoint + ``` + + + With the most recent versions of awscli (1.29.0 or 2.13.0), the use of a plugin is not necessary. If you are using one of those versions and wish to skip this step, you can do so. Note that this will also affect your configuration file in the next step. + + +2. Open the `~/.aws/config` file you just created in a text editor and edit it as follows (the Queues (SQS) endpoint URL can be found in the console on the **Settings** page of the Queues product) + ``` + [plugins] + endpoint = awscli_plugin_endpoint + [profile sns] + region = fr-par + [profile sqs] + region = fr-par + sqs = + endpoint_url = https://sqs.mnq.fr-par.scaleway.com + ``` + + Optionally, you can also configure additional profiles by adding new blocks under `[sqs]`. For example, you can add a profile for `[sns]` if you are also using Scaleway Topics and Events, or another profile, `[profile aws]`, to connect to the AWS SQS/SNS service if you want: + + ``` + [plugins] + endpoint = awscli_plugin_endpoint + [profile sns] + region = fr-par + sns = + endpoint_url = https://sns.mnq.fr-par.scaleway.com + [profile sqs] + region = fr-par + sqs = + endpoint_url = https://sqs.mnq.fr-par.scaleway.com + [profile aws] + region=eu-west-3 + output=json + ``` + + + If you are using the AWS-CLI v2, you must include the path to the plugin in your configuration file. Add `cli_legacy_plugin_path = ` to the `[plugins]` section, replacing `` with the corresponding path. + + + + If you are using aws 1.29.0 or 2.13.0 without the plugin, your configuration file should be as follows: + ``` + [profile sqs] + region = fr-par + endpoint_url = https://sqs.mnq.fr-par.scaleway.com + ``` + + + +3. Generate a credentials file using the following command: + ``` + aws configure + ``` + +4. Open the `~/.aws/credentials` file you just created, and add the access key and secret key you saved when you generated your [credentials](/queues/how-to/create-credentials/): + ``` + [queues] + aws_access_key_id= + aws_secret_access_key= + ``` + + If you have other profiles, you can add a block to indicate their credentials too: + ``` + [topics_events] + aws_access_key_id= + aws_secret_access_key= + + [aws] + aws_access_key_id= + aws_secret_access_key= + ``` + +5. Test that everything is set up correctly with the following command: + ``` + aws queues list-queues + ``` + + Use the `--profile` option if you want to test it using a different profile. + + + Check out our dedicated documentation to find more common commands for getting started with the AWS CLI. The [Queues guide](/queues/api-cli/sqs-sns-aws-cli/#getting-started-with-scaleway-queues) walks you through creating and listing queues, sending messages to queues, and more. + diff --git a/pages/queues/api-cli/index.mdx b/pages/queues/api-cli/index.mdx new file mode 100644 index 0000000000..f81cd2808b --- /dev/null +++ b/pages/queues/api-cli/index.mdx @@ -0,0 +1,8 @@ +--- +meta: + title: Queues - API/CLI Documentation + description: Queues API/CLI Documentation +content: + h1: Queues - API/CLI Documentation + paragraph: Queues API/CLI Documentation +--- diff --git a/pages/queues/api-cli/python-node-queues.mdx b/pages/queues/api-cli/python-node-queues.mdx new file mode 100644 index 0000000000..041ced87cd --- /dev/null +++ b/pages/queues/api-cli/python-node-queues.mdx @@ -0,0 +1,230 @@ +--- +meta: + title: Using Go, Python or Node.js with Scaleway Queues + description: This page explains how to use Go, Python or Node.js with Scaleway Queues and provides code samples +content: + h1: Using Go, Python or Node.js with Scaleway Queues + paragraph: This page explains how to use Go, Python or Node.js with Scaleway Queues and provides code samples +tags: messaging boto3 python nodejs sqs go +categories: + - messaging +dates: + validation: 2024-10-18 + posted: 2023-01-04 +--- + +AWS provides a number of SDKs (**S**oftware **D**evelopment **K**its) which provide language-specific APIs for AWS services, including [SQS](/queues/concepts#sqs), which is the protocol Scaleway Queues is based on. + +- AWS provides a dedicated [SDK for Go](https://aws.amazon.com/sdk-for-go/). +- The [AWS SDK for Python](https://aws.amazon.com/sdk-for-python/) is Boto3 +- For Node.js, use the [AWS SDK for JavaScript](https://aws.amazon.com/sdk-for-javascript/), which can be [installed from NPM](https://github.com/aws/aws-sdk-js-v3#getting-started) + +This guide provides code samples to show you how to start using these SDKs with Scaleway Queues. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- Valid [credentials](/queues/how-to/create-credentials/) for Scaleway Queues +- Installed the relevant AWS SDK [for Go](https://aws.amazon.com/sdk-for-go/), [Python](https://aws.amazon.com/sdk-for-python/) and/or [JavaScript](https://aws.amazon.com/sdk-for-javascript/) + +## Go + +### Connect to Queues (Go) + +The following code sample shows how to connect to Scaleway Queues: + +```go +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/sqs" +) + +func main() { + awsSession := session.Must(session.NewSession(&aws.Config{ + Region: aws.String("fr-par"), + Endpoint: aws.String("http://sqs.mnq.fr-par.scaleway.com"), + Credentials: credentials.NewStaticCredentials(AwsAccessKey, AwsSecretKey, ""), + })) + + awsSqs := sqs.New(awsSession) + + [...] +} +``` + + + + The `Endpoint` for Scaleway Queues is `https://sqs.mnq.fr-par.scaleway.com`. For the access and secret key values, use the credentials you [generated](/queues/how-to/create-credentials/) for Queues. + + + +Once you are connected, you can use any functions available with the SDK. However, we recommend that you check they are [supported by Scaleway Queues](/queues/reference-content/sqs-support/). See the [official documentation](https://pkg.go.dev/github.com/aws/aws-sdk-go/service/sqs) for more details on using the SDK, or read on to see some examples. + +### Create queue (Go) + +```go +createQueueResponse, _ := awsSqs.CreateQueue(&sqs.CreateQueueInput{ + QueueName: aws.String("my-test-queue"), +}) +fmt.Println(*createQueueResponse.QueueUrl) +``` + +### Send messages to this queue (Go) + +```go +for i := 0; i < 10; i++ { + _, _ = awsSqs.SendMessage(&sqs.SendMessageInput{ + MessageBody: aws.String(fmt.Sprintf("Hello World: %d", i)), + QueueUrl: createQueueResponse.QueueUrl, + }) +} +``` + +### Receive messages from this queue (Go) + +```go +for { + receiveMessageResponse, err := awsSqs.ReceiveMessage(&sqs.ReceiveMessageInput{ + QueueUrl: createQueueResponse.QueueUrl, + }) + if err != nil || len(receiveMessageResponse.Messages) == 0 { + break + } + for _, m := range receiveMessageResponse.Messages { + fmt.Println(*m.Body) + } +} +``` + +## Python + +### Connect to Queues (Python) + +The following code sample shows how to connect to Scaleway Queues using Boto3's `resource()`. It is also possible to use `client()`, but `resource()` is more pythonesque: + +```python +sqs = boto3.resource('sqs', + endpoint_url=[], + aws_access_key_id=[], + aws_secret_access_key=[], + region_name='fr-par') +``` + + + The `endpoint_url` for Scaleway Queues is `https://sqs.mnq.fr-par.scaleway.com`. For the access and secret key values, use the credentials you [generated](/queues/how-to/create-credentials/) for Queues. + + +Once connected, you can use any functions available with the SDK - just check that they are [supported by Scaleway Queues](/queues/reference-content/sqs-support/). See the [official documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) for more details, or read on to see some examples. + +### Create queue (Python) + +```python +# Create the queue. This returns an SQS.Queue instance +queue = sqs.create_queue(QueueName='my test queue') + +# You can now access identifiers and attributes +print(queue.url) +print(queue.attributes) +``` + +### Send messages to this queue (Python) + +```python +for i in range (0,10): + queue.send_message(MessageBody="Hello World: "+str(i)) +``` + +### Receive messages from this queue (Python) + +```python +for message in queue.receive_messages(): + print(message.body) + message.delete() +``` + +## Node.js + +### Connect to Scaleway Queues (NodeJS) + +Here, we use the `@aws-sdk/client-sqs` module, which is the latest SDK available. +Import the required module: +```javascript +const { SQSClient, SendMessageCommand, CreateQueueCommand, ReceiveMessageCommand } = require("@aws-sdk/client-sqs"); +// If you use ES6 syntax +// import { SQSClient, SendMessageCommand, CreateQueueCommand, ReceiveMessageCommand } from "@aws-sdk/client-sqs"; +``` + +The following code sample shows how to connect to Scaleway Queues: + +```javascript +var sqsClient = new SQSClient({ + credentials: { + accessKeyId: SQS_ACCESS_KEY_ID, + secretAccessKey: SQS_ACCESS_KEY + }, + region: "par", + endpoint: SQS_ENDPOINT, +}) +``` + + + The `endpoint_url` for Scaleway Queues is `https://sqs.mnq.fr-par.scaleway.com`. For the access and secret key values, use the credentials you [generated](/queues/how-to/create-credentials/) for Scaleway Queues. + + +Once connected, you can use any of the SDK's functions as long as they're [supported by Scaleway Queues](/queues/reference-content/sqs-support/). Refer to AWS's [official documentation](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html) for more information, or read on to see some examples. + +### Create queue (NodeJS) + +```javascript +const createQueueCommand = new CreateQueueCommand({ + QueueName: 'SQS_QUEUE_NAME', + Attributes: { + 'MessageRetentionPeriod': '86400' + } + }); + +const createQueue = await sqsClient.send(createQueueCommand); +console.log(createQueue.QueueUrl); +``` + +You can find all available parameters for createQueue in the AWS documentation [here](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property). + +### Send messages to this queue (NodeJS) + +The following code sample demonstrates how to send a message with some `MessageAttributes`: + +```javascript +const sendMessageCommand = new SendMessageCommand({ + MessageAttributes: { + "Name": { + DataType: "String", + StringValue: "John" + }}, + MessageBody: "This is a test message to John", + QueueUrl: "SQS_QUEUE_URL" + }); + +const sendMessage = await sqsClient.send(sendMessageCommand) +console.log("Success", sendMessage.MessageId); +}); +``` + +### Receive messages from this queue (NodeJS) + +The following code sample shows how to read messages from a queue, and then delete them: + +```javascript +var queueURL= "SQS_QUEUE_URL"; + +const receiveMessageCommand = new ReceiveMessageCommand({ + MaxNumberOfMessages: 10, + QueueUrl: queueURL, + VisibilityTimeout: 20 +}); + +const receiveMessage = await sqsClient.send(receiveMessageCommand); +console.log(receiveMessage); +``` diff --git a/pages/queues/api-cli/queues-aws-cli.mdx b/pages/queues/api-cli/queues-aws-cli.mdx new file mode 100644 index 0000000000..2d7bdb15a8 --- /dev/null +++ b/pages/queues/api-cli/queues-aws-cli.mdx @@ -0,0 +1,68 @@ +--- +meta: + title: Using Scaleway Queues with the AWS-CLI + description: This page explains how to use Scaleway Queues with the AWS CLI +content: + h1: Using Scaleway Queues with the AWS-CLI + paragraph: This page explains how to use Scaleway Queues for creating queues and sending and receiving messages with the AWS CLI +tags: messaging sqs aws-cli cli aws queues messages +categories: + - messaging +dates: + validation: 2025-04-02 + posted: 2025-04-02 +--- + +The AWS-CLI is an open-source tool built on top of the AWS SDK for Python (Boto) that provides commands for interacting with AWS services. Once you have [connected Scaleway Queues to the AWS-CLI](/queues/api-cli/connect-aws-cli/), you can start creating, listing and managing your queues, sending messages and much more, all from your command line. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- Valid [credentials](/queues/how-to/create-credentials/) for Queues +- [Connected Queues to the AWS-CLI](/queues/api-cli/connect-aws-cli/) +- [jq](https://stedolan.github.io/jq/download/) installed on your machine + +## Getting started with Scaleway Queues + +1. Use the following command to create a queue: + + ```sh + aws sqs create-queue --queue-name MyQueue | tee my-queue.json + ``` + +2. Use the following command to list existing queues: + + ```sh + aws sqs list-queues + ``` + +3. Use the following command to send messages to a queue: + + ```sh + aws sqs send-message --queue-url $(jq -r .QueueUrl my-queue.json) --message-body "Hello world!" + + aws sqs send-message --queue-url $(jq -r .QueueUrl my-queue.json) --message-body "Second Message." + ``` + +4. Use the following command to receive messages: + + ```sh + aws sqs receive-message --queue-url $(jq -r .QueueUrl my-queue.json) | tee message1.json + + aws sqs receive-message --queue-url $(jq -r .QueueUrl my-queue.json) | tee message2.json + ``` + +5. Use the following command to delete messages. This is necessary as once a message has been processed on your consumer side (typically by a worker), it will be re-queued unless it is explicitly deleted. + + ```sh + aws sqs delete-message --queue-url $(jq -r .QueueUrl my-queue.json) --receipt-handle $(jq -r .Messages[0].ReceiptHandle message1.json) + + aws sqs delete-message --queue-url $(jq -r .QueueUrl my-queue.json) --receipt-handle $(jq -r .Messages[0].ReceiptHandle message2.json) + ``` + +6. Use the following command to delete the queue itself: + + ```sh + aws sqs delete-queue --queue-url $(jq -r .QueueUrl my-queue.json) + ``` \ No newline at end of file diff --git a/pages/queues/concepts.mdx b/pages/queues/concepts.mdx new file mode 100644 index 0000000000..83714f1190 --- /dev/null +++ b/pages/queues/concepts.mdx @@ -0,0 +1,84 @@ +--- +meta: + title: Queues - Concepts + description: Understand the core concepts of Scaleway Queues. Explore fundamental principles for efficient message handling and service optimization. +content: + h1: Queues - Concepts + paragraph: Understand the core concepts of Scaleway Queues. Explore fundamental principles for efficient message handling and service optimization. +categories: + - +tags: messaging queuing concepts queues +dates: + validation: 2025-04-02 + posted: 2025-04-02 +--- + +## Content-based deduplication + +Content-based deduplication is a setting available for [FIFO](#fifo) queues. Enable content-based deduplication if the message body is guaranteed to be unique for each message. A unique hash value is generated from the body of each message, which is used as its deduplication ID. This avoids the need to set a deduplication ID when sending messages. Read more in our dedicated documentation on [creating queues](/queues/how-to/create-manage-queues/). + +## Credentials + +Credentials give services and platforms access to Scaleway Queues, enabling them to connect to the host system. Credentials for Scaleway Queues define whether the bearer is allowed to write, and/or read, and/or manage queues. Refer to our [credentials documentation](/queues/how-to/create-credentials/) for more information. + +## Dead-letter queue + +A **D**ead-**l**etter **q**ueue (DLQ), or **undelivered-message queue**, receives and holds messages that cannot be delivered to their destination queues. A DLQ must be of the same type (FIFO or Standard), in the same Project and in the same region as the queue(s) it serves. Each DLQ also has an associated parameter: [maximum receive count](#maximum-receive-count). A single queue can serve as dead-letter queue to multiple source queues. + +If you designate a queue as a DLQ and its [storage quota](/organizations-and-projects/additional-content/organization-quotas/#queues) is reached, messages won't be redriven to the DLQ until enough free space is available again. If your DLQ is at its full quota, free up space by receiving and deleting messages from any queue in your Project. + +## FIFO + +FIFO stands for **F**irst **I**n **F**irst **O**ut, and represents a type of queue where the exact order of messages is preserved, and duplicate messages are not tolerated. As well as these specificities, FIFO queues support all the same features as the [Standard](#standard) queue type. Consider using FIFO queues for any use cases where the order of messages is critical, such as e-commerce order management systems, systems where one action should not happen until another has been completed, or first-come-first-served ticketing systems. + +## Message broker + +A message broker is a piece of software that allows applications, systems and services to communicate with each other and send/receive data. It facilitates the exchange of information by receiving messages from a producer, and transmitting them to a consumer. Scaleway Queues is a message broker tool based on the AWS SQS messaging system. + +## Maximum receive count + +The maximum receive count is a setting that can be configured for a [dead-letter queue](#dead-letter-queue). It defines how many times a message can be received by consumers from the source queue before being moved to the dead-letter queue. This value must be between 1 and 1,000. + +## Message retention period + +The message retention period is a setting that can be configured for a queue. It represents the length of time (in seconds) that messages are kept in the queue before being deleted. Setting a longer message retention period allows for a longer interval between a message being sent and it being received. Read more in our dedicated documentation on [creating queues](/queues/how-to/create-manage-queues/). + +## Messaging and Queuing + +Previously, Scaleway Messaging and Queuing was a single product that grouped together three different messaging protocols. It has now been split into three distinct products: [NATS](#nats), [Queues](#queues), and [Topics and Events](#topics-and-events). + +## Queue + +Creating a queue with [Scaleway Queues](#scaleway-queues) facilitates asynchronous communication between different microservices, applications, and platforms. You can create a queue, configure its delivery and message parameters, and then start sending messages to it. Messages are stored in the queue until they are processed and delivered, and deleted once consumed. [Read more about creating and configuring queues](/queues/how-to/create-manage-queues/), or check our [tutorial on creating a serverless scraping architecture using a queue](/tutorials/create-serverless-scraping/) to get an idea of what you can do with message queues. + +## Queue types + +When creating queues with Scaleway Queues, two queue types are available. [Standard](#standard) queues provide at-least-once delivery, while [FIFO](#fifo) queues offer first-in-first-out delivery, and (unlike Standard queues) guarantee that messages are delivered in order and without duplication. [Content-based deduplication](#content-based-deduplication) is only available for FIFO queue types. Find out more about creating queues with our [dedicated documentation](/queues/how-to/create-manage-queues/). + +## Queuing + +The message queuing model used by Scaleway Queues. It provides a pattern or framework for sending messages, which contrasts with the publish/subscribe model used by NATS and Topics and Events. Queuing is a form of asynchronous service-to-service communication. Whereas with the publish/subscribe model multiple subscribers can receive each message, with the queuing model, messages have just one destination. Messages are stored in the queue until they are processed and delivered, and they are deleted once consumed. This model is used in serverless and microservices architectures. + +## Queue volume + +Queue volume is one of the factors affecting the billing of Scaleway Queues. Queue volume is calculated as the number of messages in a queue, multiplied by the message size. Or, the sum of the size of all messages in a queue. + +## Region + +Scaleway Queues is available in multiple regions. A region designates the geographical area where the service is hosted. Refer to the [product availability table](/account/reference-content/products-availability/) to check which regions are available. + +## Scaleway Queues + +Scaleway Queues is a product for creating managed messaging queues based on AWS's [SQS](#sqs) protocol. It allows you to implement your messaging queues without the hassle of managing the infrastructure, scaling or updates. + +## SQS + +The Scaleway Queues product is based on the AWS SQS protocol. **S**imple **Q**ueue **S**ervice, or SQS, is a distributed message [queuing](#queuing) service that supports programmatic sending of messages via web service applications. + +## Standard + +Standard-type queues and topics represent the default queue/topic type, and offer an at-least-once message delivery system. Unlike [FIFO](#fifo) queues and topics, standard queues provide only best-effort attempts to deliver messages in order. At-least-once delivery means that it is possible under rare circumstances that the same message may be received more than once. + +## Visibility timeout + +Visibility timeout is a setting that can be configured for a Scaleway queue. It represents the length of time (in seconds) during which, after a message is received, the queue hides it, so it cannot be received again by the same or other consumers. This is useful as the queue itself does not automatically delete messages once they are received, and so prevents consumers from receiving the same message many times before they have finished processing it. Read more in our dedicated documentation on [creating queues](/queues/how-to/create-manage-queues/). diff --git a/pages/queues/faq.mdx b/pages/queues/faq.mdx new file mode 100644 index 0000000000..418322a21c --- /dev/null +++ b/pages/queues/faq.mdx @@ -0,0 +1,30 @@ +--- +meta: + title: Queues FAQ + description: Discover Scaleway Queues, and get answers to common questions about the capabilities of the product, how to manage your queues, billing and more. +content: + h1: Queues FAQ + paragraph: Discover Scaleway Queues, and get answers to common questions about the capabilities of the product, how to manage your queues, billing and more. +dates: + validation: 2025-04-02 + posted: 2025-04-02 +categories: + - serverless +productIcon: SqsProductIcon +--- + +## What is Scaleway Queues? + +Scaleway Queues is a product for creating managed message queues based on AWS's SQS protocol. It allows you to implement your message queues without the hassle of managing the infrastructure, scaling or updates. Message queues are ideal for facilitating asynchronous job processing and communication between microservices. + +## What is SQS? + +**S**imple **Q**ueue **S**ervice, or SQS, is AWS's distributed message [queuing](#queuing) protocol, that supports programmatic sending of messages via web service applications. + +## Is the Scaleway Queues gateway compatible with my application, framework or tool? + +We currently implement the API endpoints listed [here](/queues/reference-content/sqs-support/), which makes Scaleway Queues compatible with the AWS SDK as well as many other tools and frameworks including KEDA and Symfony. Note that you need to specify both Regions and URL to ensure compatibility. + +## How is Scaleway Queues billed? + +Billing is based on [queue volume](/queues/concepts/#queue-volume) - the combined size of the messages travelling through queues. For full pricing details, see our [dedicated pricing page](https://www.scaleway.com/en/pricing/). \ No newline at end of file diff --git a/pages/queues/how-to/create-credentials.mdx b/pages/queues/how-to/create-credentials.mdx new file mode 100644 index 0000000000..c012078bc7 --- /dev/null +++ b/pages/queues/how-to/create-credentials.mdx @@ -0,0 +1,49 @@ +--- +meta: + title: How to create credentials for Scaleway Queues + description: Learn how to create credentials for Scaleway Queues. Securely manage access and ensure seamless integration with this step-by-step guide. +content: + h1: How to create credentials for Scaleway Queues + paragraph: Learn how to create credentials for Scaleway Queues. Securely manage access and ensure seamless integration with this step-by-step guide. +tags: credentials queues messaging queuing key token +categories: + - serverless +dates: + validation: 2025-04-02 + posted: 2025-04-02 +--- + +This page shows how to create [credentials](/queues/concepts/#credentials) for Scaleway Queues. Credentials give their bearer (e.g. services and platforms) access to your messaging queue service. + +You can create multiple sets of credentials for Scaleway Queues. Credentials for Queues are granular: you can define the level of access that they should give. Credentials give the specified level of access to all queues that you create in the [region](/queues/concepts/#region) they are scoped to. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. A list of your queues displays. + +2. Click the **Credentials** tab. + +3. Click **Generate credentials**. A pop-up displays: + + + +4. Choose a region that these credentials should be scoped to. + +5. Enter a name for these credentials. + +6. Select the required permissions for the credentials. You must choose at least one of **Write**, **Read** and **Manage**. You are free to select any combination of these permissions. + +7. Click **Generate credentials**. + + The credentials are created. The access key and secret key are displayed, and you are invited to copy them. + + + This is your only chance to view and save the secret key. Make sure that you copy it and save it somewhere securely. + + +8. Copy and save the credentials, before closing the window. + + You are returned to the **Credentials** tab. The name of your newly-generated credentials, along with the access key and access level are displayed. \ No newline at end of file diff --git a/pages/queues/how-to/create-manage-queues.mdx b/pages/queues/how-to/create-manage-queues.mdx new file mode 100644 index 0000000000..8626f2c9fb --- /dev/null +++ b/pages/queues/how-to/create-manage-queues.mdx @@ -0,0 +1,102 @@ +--- +meta: + title: How to create and manage queues + description: Learn to create and manage queues with Scaleway Queues. This guide helps you efficiently handle messaging queues for seamless operations. +content: + h1: How to create and manage queues + paragraph: Learn to create and manage queues with Scaleway Queues. This guide helps you efficiently handle messaging queues for seamless operations. +tags: messaging queuing queues sqs +categories: + - serverless +dates: + validation: 2025-04-02 + posted: 2022-08-11 +--- + +This page shows how to create and manage your queues with [Scaleway Queues](/queues/concepts/#queue) (formerly part of the **Messaging and Queuing** product). + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +## How to create a queue + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Click **Create queue**. The Queue creation wizard displays. + + + +3. Select the [region](/queues/concepts/#region) in which you want to create the queue. + +4. Enter a **name** for your queue. The name must be no more than 80 characters, and consist only of alphanumeric characters, hyphens, and underscores. Alternatively, you can go with the auto-generated name suggested for you. + +5. Choose your **Queue type**, from one of the following: + - **Standard**: Standard Queues ensure at-least-once delivery. The exact order of messages in the queue is not preserved. + - **FIFO**: FIFO Queues (**F**irst **In** **F**irst **O**ut) preserves the exact ordering of messages. + +6. Configure your queue's **parameters**. The following parameters can be defined: + - **Visibility timeout**: The length of time (in seconds) during which, after a message is received, it is hidden and cannot be received again by the same or other consumers. This is useful as the queue itself does not automatically delete messages once they are received, and so prevents consumers from receiving the same message many times before they have finished processing it. Therefore, the value set here should be informed by the expected length of time it will take consumers to process messages. The default value is 30 seconds. The value must be between 1 second and 43 200 seconds (12 hours). + - **Message retention period**: The length of time (in seconds) that messages are kept in the queue before being deleted. Setting a longer message retention period allows for a longer interval between a message being sent and it being received. The default value is 60 seconds. The value must be between 60 seconds and 1 290 600 seconds (14 days). + - **Maximum message size**: The maximum size (in kilobytes) of a message that can be sent to the queue. Messages greater than the defined size will be rejected. The default value is 256 KB. The value must be between 1 KB and 256 KB. + - **Content Based Deduplication**: This setting is only available for FIFO queues. Enable content-based deduplication if the message body is guaranteed to be unique for each message. A unique hash value is generated from the body of each message, which is used as its deduplication ID. This avoids the need to set a deduplication ID when sending messages. + - **Dead-letter queue**: Designate another queue to [receive undelivered messages](/queues/concepts/#dead-letter-queue) from this queue. If you select this option, you are prompted to select an existing queue as dead-letter queue. This queue must be of the same type, in the same Project and in the same region as the queue you are creating. You must also enter a value for the **maximum receive count**: how many times a message can be received by consumers from the source queue before being moved to the dead-letter queue. + +7. Click **Create queue** to finish. + +You are returned to the **Queues** tab, where your newly-created queue now displays. The queue's URL is also displayed here, for use in your API/CLI operations. + +Go further by clicking on the queue's name to access its **Settings** page and see additional information such as its ARN (Amazon Resource Name) and configuration parameters. + + +Remember that you need to [create credentials](/queues/how-to/create-credentials/) in order to access your queues from an API or CLI. Sending messages to queues requires that credentials have the `can_publish` permission, while receiving messages from queues requires the `can_receive` permission. You can create separate credentials if you need to isolate these two roles in your application. + + +## How to modify a queue's configuration + +You can modify the visibility timeout, message retention period and maximum message size of a queue after creation. You can also modify the content based deduplication settings for FIFO queues. However, you cannot change a queue's name or type after creation. + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Use the drop-down menu to select the [region](/queues/concepts/#region) of the queue you want to modify. + +3. Click the queue you wish to modify. The queue's **Settings** page displays: + + + +4. Modify the visibility timeout, message retention period, maximum message size, dead-letter queue settings, and (for FIFO queues) content-based deduplication values as you wish. + +5. Click **Save**. + +## How to purge a queue of messages + +You can use the **Purge** feature to delete all messages from a queue. + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Use the drop-down menu to select the [region](/queues/concepts/#region) of the queue you want to configure. + +3. Either: + - Click the queue you wish to purge. The queue's **Settings** page displays. Click the **Purge** button in the top right corner. + - Click the icon next to the queue you wish to purge, then select **Purge** from the menu that displays. + + A pop-up asks you to confirm that you understand this action will delete all your queued messages. + +4. Type **PURGE** and click **Purge queue**. + +## How to delete a queue + +When you no longer want a queue, you can delete it. This action is irreversible and deletes the queue along with any queued messages. + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Use the drop-down menu to select the [region](/queues/concepts/#region) of the queue you want to configure. + +3. Either: + - Click the queue you wish to delete. The queue's **Settings** page displays. Click the **Delete queue** button in the bottom right corner. + - Click the icon next to the queue you wish to delete, then select **Delete** from the menu that displays. + + A pop-up asks you to confirm that you understand this action will delete the queue and all your queued messages. + +4. Type **DELETE** and click **Delete queue**. \ No newline at end of file diff --git a/pages/queues/how-to/index.mdx b/pages/queues/how-to/index.mdx new file mode 100644 index 0000000000..3a24970e46 --- /dev/null +++ b/pages/queues/how-to/index.mdx @@ -0,0 +1,8 @@ +--- +meta: + title: Queues - How Tos + description: Queues How Tos +content: + h1: Queues - How Tos + paragraph: Queues How Tos +--- diff --git a/pages/queues/how-to/manage-credentials.mdx b/pages/queues/how-to/manage-credentials.mdx new file mode 100644 index 0000000000..6e2a01d84a --- /dev/null +++ b/pages/queues/how-to/manage-credentials.mdx @@ -0,0 +1,58 @@ +--- +meta: + title: How to manage credentials for Scaleway Queues + description: Master managing credentials for Scaleway Queues. Follow this guide to securely update, rotate, and control access to your messaging services. +content: + h1: How to manage credentials for Scaleway Queues + paragraph: Master managing credentials for Scaleway Queues. Follow this guide to securely update, rotate, and control access to your messaging services. +dates: + validation: 2025-04-03 + posted: 2025-04-03 +tags: manage credentials messaging queuing permissions update revoke +categories: + - serverless +--- + +Credentials give their bearer (e.g. services and platforms) access to your Queues service. + +This page shows how to manage [credentials](/queues/concepts/#credentials) for Scaleway Queues. Credentials can be updated to change their permissions, or revoked entirely. Once credentials are revoked, any user trying to use the credentials to connect to the service will be denied. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- Valid [credentials](/queues/how-to/create-credentials/) + +## How to update Queues credentials + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Click the **Credentials** tab. + +3. Use the drop-down menu to select the [region](/queues/concepts/#region) containing the credentials you want to update. + +4. Click the button next to the credentials you want to update, and select **Update credentials**. A pop-up displays, such as the one below for Queues: + + + +5. Make the required updates to your credentials. You can modify the name, and the permissions. + +6. Click **Update credentials**. + + The credentials are updated and you are returned to the product's **Credentials** listing. + +## How to revoke Queues credentials + +1. Click **Queues**in the **Serverless** section of the Scaleway console side menu. + +2. Click the **Credentials** tab. + +3. Use the drop-down menu to select the [region](/queues/concepts/#region) containing the credentials you want to revoke. + +4. Click the button next to the credentials you want to revoke and select **Revoke**. + + A pop-up displays, warning you that this action is irreversible and the key will no longer be able to access your service. + +5. Click **Revoke credentials**. + + The credentials are revoked and you are returned to the product's **Credentials** listing. \ No newline at end of file diff --git a/pages/queues/index.mdx b/pages/queues/index.mdx new file mode 100644 index 0000000000..e33c4d05ff --- /dev/null +++ b/pages/queues/index.mdx @@ -0,0 +1,73 @@ +--- +meta: + title: Queues Documentation + description: Explore Scaleway Queues. Simplify your microservice workflows with scalable, reliable, and cost-effective message handling solutions. +--- + + + +## Getting Started + + + + + + + + + +## Tutorials + + + + + + + + +## Changelog + + \ No newline at end of file diff --git a/pages/queues/quickstart.mdx b/pages/queues/quickstart.mdx new file mode 100644 index 0000000000..04ac7b32e3 --- /dev/null +++ b/pages/queues/quickstart.mdx @@ -0,0 +1,97 @@ +--- +meta: + title: Queues - Quickstart + description: Get started with Scaleway Queues. This quickstart guide helps you easily set up and manage scalable messaging solutions in minutes. +content: + h1: Queues - Quickstart + paragraph: Get started with Scaleway Queues. This quickstart guide helps you easily set up and manage scalable messaging solutions in minutes. +dates: + validation: 2025-04-01 + posted: 2025-04-01 +tags: messaging queuing queueing quickstart messaging-and-queuing sqs message-broker queues +categories: + - serverless +--- + +Scaleway Queues is a managed message broker service that allows you to transfer messages between different microservices and platforms via queues. This enables decoupled applications to "talk" to each other effectively even if they are not otherwise compatible. Scaleway Queues enables and simplifies microservices application development and allows you to build highly scalable, reliable, distributed applications. + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +## How to create credentials for Queues + +Credentials for Queues are granular: you can define the level of access that they should give. Credentials give the specified level of access to all queues that you create in the region they are scoped to. + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. A list of your queues displays. + +2. Click the **Credentials** tab. + +3. Click **Generate credentials**. A pop-up displays: + + + +4. Choose a region that these credentials should be scoped to. + +5. Enter a name for these credentials. + +6. Select the required permissions for the credentials. You must choose at least one of **Write**, **Read** and **Manage**. You are free to select any combination of these permissions. + +7. Click **Generate credentials**. + + The credentials are created. The access key and secret key are displayed, and you are invited to copy them. + + + This is your only chance to view and save the secret key. Make sure that you copy it and save it somewhere securely. + + +8. Copy and save the credentials, before closing the window. + + You are returned to the **Credentials** tab. The name of your newly-generated credentials, along with the access key and access level are displayed. + +## How to create queues + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Click **Create queue**. The queue creation wizard displays. + + + +3. Select the [region](/queues/concepts/#region) in which you want to create the queue. + +4. Enter a **name** for your queue. The name must be no more than 80 characters, and consist only of alphanumeric characters, hyphens, and underscores. Alternatively, you can go with the auto-generated name suggested for you. + +5. Choose your **Queue type**, from one of the following: + - **Standard**: Standard Queues ensure at-least-once delivery. The exact order of messages in the queue is not preserved. + - **FIFO**: FIFO Queues (**F**irst **In** **F**irst **O**ut) preserves the exact ordering of messages. + +6. Configure your queue's **parameters**. The following parameters can be defined: + - **Visibility timeout**: The length of time (in seconds) during which, after a message is received, it is hidden and cannot be received again by the same or other consumers. This is useful as the queue itself does not automatically delete messages once they are received, and so prevents consumers from receiving the same message many times before they have finished processing it. Therefore, the value set here should be informed by the expected length of time it will take consumers to process messages. The default value is 30 seconds. The value must be between 1 second and 43 200 seconds (12 hours). + - **Message retention period**: The length of time (in seconds) that messages are kept in the queue before being deleted. Setting a longer message retention period allows for a longer interval between a message being sent and it being received. The default value is 60 seconds. The value must be between 60 seconds and 1 209 600 seconds (14 days). + - **Maximum message size**: The maximum size (in kilobytes) of a message that can be sent to the queue. Messages greater than the defined size will be rejected. The default value is 256 KB. The value must be between 1 KB and 256 KB. + - **Content Based Deduplication**: This setting is only available for FIFO queues. Enable content-based deduplication if the message body is guaranteed to be unique for each message. A unique hash value is generated from the body of each message, which is used as its deduplication ID. This avoids the need to set a deduplication ID when sending messages. + - **Dead-letter queue**: Designate another queue to receive undelivered messages from this queue. If you select this option, you are prompted to select an existing queue as dead-letter queue. This queue must be of the same type, in the same Project and in the same region as the queue you are creating. You must also enter a value for the **maximum receive count** (how many times a message can be received from the source queue before being moved to the dead-letter queue). + +7. Click **Create queue** to finish. + +You are returned to the **Queues** tab, where your newly-created queue now displays. The queue's URL is also displayed here, for use in your API/CLI operations. + +## How to send and receive messages + +All further actions related to sending messages to queues can be done via a supported CLI or SDK. See our documentation on the [SQS CLI and SDKs](/queues/reference-content/sqs-overview#further-actions) for more information. You can also check out [our tutorial](/tutorials/create-serverless-scraping/) on creating a serverless scraping architecture with Scaleway Queues. + +## How to delete a queue + +When you no longer want a queue, you can delete it. This action is irreversible and deletes the queue along with any queued messages. + +1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. + +2. Use the drop-down menu to select the [region](/queues/concepts/#region) of the queue you want to configure. + +3. Either: + - Click the queue you wish to delete. The queue's **Settings** page displays. Click the **Delete queue** button in the bottom right corner. + - Click the icon next to the queue you wish to delete, then select **Delete** from the menu that displays. + + A pop-up asks you to confirm that you understand this action will delete the queue and all your queued messages. + +4. Type **DELETE** and click **Delete queue**. \ No newline at end of file diff --git a/pages/queues/reference-content/index.mdx b/pages/queues/reference-content/index.mdx new file mode 100644 index 0000000000..005f2eb239 --- /dev/null +++ b/pages/queues/reference-content/index.mdx @@ -0,0 +1,8 @@ +--- +meta: + title: Queues - Additional content + description: Queues additional content +content: + h1: Queues - Additional content + paragraph: Queues additional content +--- diff --git a/pages/queues/reference-content/limitations.mdx b/pages/queues/reference-content/limitations.mdx new file mode 100644 index 0000000000..f4808c382f --- /dev/null +++ b/pages/queues/reference-content/limitations.mdx @@ -0,0 +1,22 @@ +--- +meta: + title: Queues Limitations + description: Learn about the current limitations of Scaleway Queues +content: + h1: Queues Limitations + paragraph: Learn about the current limitations of Scaleway Queues +tags: messaging limitations space size storage payload max-streams max-consumers max-subscribers max-topics max-queues visibility-timeout +dates: + validation: 2025-04-02 + posted: 2025-04-02 +categories: + - serverless +--- + +## Usage limits + +For the usage limits that apply when using Scaleway Queues, see the dedicated sections on our [Organization quotas](/organizations-and-projects/additional-content/organization-quotas/) page. Limits (quotas) apply to, for example, the maximum number of queues and consumers/subscribers, as well as to message retention duration and storage. + +## VPC + +Queues is not currently compatible with [Scaleway VPC](/vpc/quickstart/). diff --git a/pages/queues/reference-content/queues-overview.mdx b/pages/queues/reference-content/queues-overview.mdx new file mode 100644 index 0000000000..2961527b53 --- /dev/null +++ b/pages/queues/reference-content/queues-overview.mdx @@ -0,0 +1,57 @@ +--- +meta: + title: Scaleway Queues Overview + description: Learn about the Scaleway Queues messaging system +content: + h1: Scaleway Queues Overview + paragraph: Learn about the Scaleway Queues messaging system +tags: messaging sqs aws queuing publish-subscribe message-queue +categories: + - serverless +dates: + validation: 2024-10-18 + posted: 2023-01-04 +--- + +## What is Scaleway Queues? + +Scaleway Queues is a managed message queuing service that enables decoupling of components within distributed applications. It allows applications to send, queue, store and receive messages between each other asynchronously. Scaleway Queues leverages the SQS protocol. + +## What is SQS? + +SQS is a managed messaging service developed by AWS and leveraged by Scaleway Queues. + +SQS (Simple Queue Service) became generally available in 2006. It is a highly scalable [queuing](/queues/concepts#queuing) service that facilitates the decoupling of software systems. Scaleway Queues provides a gateway that enables you to connect your existing applications without having to significantly modify your code baseline. + + + Some SQS features are not yet supported. Refer to our [dedicated documentation page](/queues/reference-content/sqs-support/) for more information. + + +## Credentials + +You must [create credentials](/queues/how-to/create-credentials/) to give your applications permission to connect to the Scaleway Queues service. + +Credentials are scoped to your Scaleway Queues service at [Project](/organizations-and-projects/concepts/#project)-level. You can choose to give each set of credentials the required level of permissions: + + - **Read**: receive messages from queues and topics. + - **Write**: send messages to queues and publish in topics. + - **Manage**: create or edit resources (such as queues and topics). + +## Creating queues + +You can [create queues](/queues/how-to/create-manage-queues/) via the Scaleway console. You can choose to create either a Standard or FIFO queue, and tweak parameters such as visibility timeout, message retention period, maximum message size and content based deduplication. + +## Further actions + +All further actions such as sending messages can be done using the AWS CLI or AWS SDKs. Check out our documentation to help you get started with the [AWS CLI](/queues/api-cli/connect-aws-cli/) or [AWS SDKs](/queues/api-cli/python-node-sqs/). + +## Queues resources + +The following resources may be helpful: + + - [How to create a serverless scraping architecture, with Scaleway Queues, Serverless Functions and Managed Database](/tutorials/create-serverless-scraping/) + - [Official SQS Documentation](https://docs.aws.amazon.com/sqs/index.html) + - Further information on supported API features: + - [SQS](/queues/reference-content/queues-support/) + - [Official AWS CLI Documentation](https://aws.amazon.com/cli/) + - [Official AWS SDK Documentation](https://aws.amazon.com/developer/tools/) \ No newline at end of file diff --git a/pages/queues/reference-content/queues-support.mdx b/pages/queues/reference-content/queues-support.mdx new file mode 100644 index 0000000000..c7f310df70 --- /dev/null +++ b/pages/queues/reference-content/queues-support.mdx @@ -0,0 +1,291 @@ +--- +meta: + title: Scaleway Queues - Supported Actions + description: Discover which SQS AWS API actions are supported by Scaleway Queues +content: + h1: Scaleway Queues - Supported Actions + paragraph: Discover which SQS AWS API actions are supported by Scaleway Queues +tags: messaging supported actions sqs aws api +categories: + - serverless +dates: + validation: 2024-10-18 + posted: 2023-01-04 +--- + +This page lists all actions described in the AWS SQS documentation, and states whether they are supported by Scaleway Queues. + +- **Y** means the parameter is fully supported +- **N** means the parameter is not supported +- **P** means the parameter is partially supported (see associated comments for more details) + +## CreateQueue + +CreateQueue requires the `CanManage` permission. + +### CreateQueue Request + +| Parameters | Support | Comments | +|:----------------|:---------:|:--------------------------------------------------------------------------------------------------| +| Attribute (map) | **P** | See supported attributes in the [SQS Queue Attributes](#sqs-api-support-queue-attributes) section | +| QueueName | **Y** | See AWS documentation for naming conventions (FIFO queues are supported) | +| Tag | **N** | | + +### CreateQueue Response + +| Elements | Support | Comments | +|:-----------|:---------:|:-----------| +| QueueUrl | **Y** | | + +## ReceiveMessage + +ReceiveMessage requires the `CanReceive` permission. + +### ReceiveMessage Request + +| Parameters | Support | Comments | +|:------------------------|:---------:|:------------------------------------------------------------------------------------------------------| +| AttributeName.N (array) | **P** | See supported attributes in the [SQS Message Attributes](#sqs-api-support-message-attributes) section | +| MaxNumberOfMessages | **Y** | | +| MessageAttributeName.N | **Y** | | +| QueueUrl | **Y** | | +| ReceiveRequestAttemptId | **N** | | +| VisibilityTimeout | **N** | | +| WaitTimeSeconds | **Y** | | + +### ReceiveMessage Response + +| Elements | Support | Comments | +|:---------------------------------|:---------:|:------------------------------------------------------------------------------------------------------| +| Message.N.Attribute | **P** | See supported attributes in the [SQS Message Attributes](#sqs-api-support-message-attributes) section | +| Message.N.Body | **Y** | | +| Message.N.MD5OfBody | **Y** | | +| Message.N.MD5OfMessageAttributes | **Y** | | +| Message.N.MessageAttribute | **Y** | | +| Message.N.MessageId | **Y** | | +| Message.N.ReceiptHandle | **Y** | | + +## SendMessage + +SendMessage requires the `CanPublish` permission. + +### SendMessage Request + +| Parameters | Support | Comments | +|:-----------------------|:---------:|:-----------| +| DelaySeconds | **N** | | +| MessageAttribute (map) | **Y** | | +| MessageBody | **Y** | | +| MessageDeduplicationId | **Y** | | +| MessageGroupId | **N** | | +| MessageSystemAttribute | **N** | | +| QueueUrl | **Y** | | + +### SendMessage Response + +| Elements | Support | Comments | +|:-----------------------------|:---------:|:-----------| +| MD5OfMessageAttributes | **Y** | | +| MD5OfMessageBody | **Y** | | +| MD5OfMessageSystemAttributes | **N** | | +| MessageId | **Y** | | +| SequenceNumber | **Y** | | + +## SendMessageBatch + +SendMessageBatch requires the `CanPublish` permission. + +### SendMessageBatch Request + +| Parameters | Support | Comments | +|:---------------------------------------|:---------:|:-------------------------------------------------------------------------------------------------------------------------| +| QueueUrl | **Y** | | +| SendMessageBatchRequestEntry.N (array) | **P** | As with the SendMessage action, the DelaySeconds, MessageGroupId and MessageSystemAttribute parameters are not supported | + +### SendMessageBatch Response + +| Elements | Support | Comments | +|:--------------------------------------|:---------:|:-------------------------------------------------------------| +| BatchResultErrorEntry.N (array) | **Y** | | +| SendMessageBatchResultEntry.N (array) | **P** | All fields are supported except MD5OfMessageSystemAttributes | + +## ListQueues + +ListQueues requires the `CanManage` permission. + +### ListQueues Request + +| Parameters | Support | Comments | +|:----------------|:---------:|:-----------| +| MaxResults | **N** | | +| NextToken | **N** | | +| QueueNamePrefix | **Y** | | + +### ListQueues Response + +| Elements | Support | Comments | +|:-------------------|:---------:|:-----------| +| NextToken | **N** | | +| QueueUrl.N (array) | **Y** | | + +## DeleteMessage + +DeleteMessage requires the `CanReceive` permission. + +### DeleteMessage Request + +| Parameters | Support | Comments | +|:--------------|:---------:|:-----------| +| QueueUrl | **Y** | | +| ReceiptHandle | **Y** | | + +## DeleteMessageBatch + +DeleteMessageBatch requires the `CanReceive` permission. + +### DeleteMessageBatch Request + +| Parameters | Support | Comments | +|:-----------------------------------------|:---------:|:-----------| +| DeleteMessageBatchRequestEntry.N (array) | **Y** | | +| QueueUrl | **Y** | | + +### DeleteMessageBatch Response + +| Elements | Support | Comments | +|:----------------------------------------|:---------:|:-----------| +| BatchResultErrorEntry.N (array) | **Y** | | +| DeleteMessageBatchResultEntry.N (array) | **Y** | | + +## DeleteQueue + +DeleteQueue requires the `CanManage` permission. + +### DeleteQueue Request + +| Parameters | Support | Comments | +|:-------------|:---------:|:-----------| +| QueueUrl | **Y** | | + +## GetQueueUrl + +GetQueueUrl requires the `CanPublish, CanReceive or CanManage` permission. + +### GetQueueUrl Request + +| Parameters | Support | Comments | +|:-----------------------|:---------:|:-----------| +| QueueName | **Y** | | +| QueueOwnerAWSAccountId | **Y** | | + +### GetQueueUrl Response + +| Elements | Support | Comments | +|:-----------|:---------:|:-----------| +| QueueUrl | **Y** | | + +## GetQueueAttributes + +GetQueueAttributes requires the `CanPublish`, `CanReceive` or `CanManage` permission. + +### GetQueueAttributes Request + +| Parameters | Support | Comments | +|:------------------------|:---------:|:--------------------------------------------------------------------------------------------------| +| AttributeName.N (array) | **P** | See supported attributes in the [SQS Queue Attributes](#sqs-api-support-queue-attributes) section | +| QueueUrl | **Y** | | + +### GetQueueAttributes Response + +| Elements | Support | Comments | +|:----------------|:---------:|:--------------------------------------------------------------------------------------------------| +| Attribute (map) | **P** | See supported attributes in the [SQS Queue Attributes](#sqs-api-support-queue-attributes) section | + +## SetQueueAttributes + +SetQueueAttributes requires the `CanManage` permission. + +### SetQueueAttributes Request + +| Parameters | Support | Comments | +|:----------------|:---------:|:--------------------------------------------------------------------------------------------------| +| Attribute (map) | **P** | See supported attributes in the [SQS Queue Attributes](#sqs-api-support-queue-attributes) section | +| QueueUrl | **Y** | | + +## ChangeMessageVisibility + +ChangeMessageVisibility requires the `CanReceive` or `CanManage` permission. + +### ChangeMessageVisibility Request + +| Parameters | Support | Comments | +|:------------------|:---------:|:----------------------------------------------------------------| +| QueueUrl | **Y** | | +| ReceiptHandle | **Y** | | +| VisibilityTimeout | **P** | Only '0' and the current queue visibility timeout are supported | + +## ChangeMessageVisibilityBatch + +ChangeMessageVisibilityBatch requires the `CanReceive` or `CanManage` permission. + +### ChangeMessageVisibilityBatch Request + +| Parameters | Support | Comments | +|:--------------------------------------------------|:---------:|:-----------------------------------------------------------------------------------------------------------| +| QueueUrl | **Y** | | +| ChangeMessageVisibilityBatchResultEntry.N (array) | **P** | The same VisibilityTimeout values are supported as for [ChangeMessageVisibility](#changemessagevisibility) | + +## PurgeQueue + +PurgeQueue requires the `CanManage` permission. + +### PurgeQueue Request + +| Parameters | Support | Comments | +|:-------------|:---------:|:-----------| +| QueueUrl | **Y** | | + +### SQS API support - Queue attributes + +The Scaleway Queues API (currently named the SQS API) supports the following queue attributes: + +| Attribute Name | Support | Comments | +|:--------------------------------------|:---------:|:-----------| +| All | **Y** | | +| ApproximateNumberOfMessages | **Y** | | +| ApproximateNumberOfMessagesDelayed | **N** | | +| ApproximateNumberOfMessagesNotVisible | **Y** | When a message has been delivered once, it will be counted here until it is deleted, even if its VisibilityTimeout expires. | +| ContentBasedDeduplication | **Y** | | +| CreatedTimestamp | **Y** | | +| DeduplicationScope | **N** | | +| DelaySeconds | **N** | | +| FifoQueue | **Y** | | +| FifoThroughputLimit | **N** | | +| KmsDataKeyReusePeriodSeconds | **N** | | +| KmsMasterKeyId | **N** | | +| LastModifiedTimestamp | **N** | | +| MaximumMessageSize | **Y** | | +| MessageRetentionPeriod | **Y** | | +| Policy | **N** | | +| QueueArn | **Y** | | +| ReceiveMessageWaitTimeSeconds | **Y** | | +| RedriveAllowPolicy | **N** | | +| RedrivePolicy | **Y** | | +| SqsManagedSseEnabled | **N** | | +| VisibilityTimeout | **Y** | | + +### SQS API support - Message attributes + +The Scaleway Queues API (currently named the SQS API) supports the following queue attributes: + +| Attribute Name | Support | Comments | +|:---------------------------------|:---------:|:-----------| +| All | **Y** | | +| ApproximateFirstReceiveTimestamp | **N** | | +| ApproximateReceiveCount | **Y** | | +| AWSTraceHeader | **N** | | +| MessageDeduplicationId | **Y** | | +| MessageGroupId | **N** | | +| SequenceNumber | **Y** | | +| SenderId | **Y** | | +| SentTimestamp | **Y** | | \ No newline at end of file From 1214329deb07eff93ba0f70b979936cf99a668c4 Mon Sep 17 00:00:00 2001 From: Rowena Date: Mon, 7 Apr 2025 15:57:01 +0200 Subject: [PATCH 3/5] feat(queues): rebase to feature branch --- menu/navigation.json | 92 +++++++++++++------ pages/queues/concepts.mdx | 2 +- .../how-to/monitor-queues-cockpit.mdx | 0 3 files changed, 67 insertions(+), 27 deletions(-) rename pages/{nats => queues}/how-to/monitor-queues-cockpit.mdx (100%) diff --git a/menu/navigation.json b/menu/navigation.json index d36bf122a5..424fef987d 100644 --- a/menu/navigation.json +++ b/menu/navigation.json @@ -4147,11 +4147,7 @@ "items": [ { "label": "Overview", -<<<<<<< HEAD "slug": "../nats" -======= - "slug": "../queues" ->>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "label": "Concepts", @@ -4168,15 +4164,11 @@ { "items": [ { -<<<<<<< HEAD "label": "Create a NATS account", "slug": "create-account" }, { "label": "Create NATS credentials", -======= - "label": "Create credentials", ->>>>>>> 9860710e2 (feat(queues): add queues doc) "slug": "create-credentials" }, { @@ -4188,13 +4180,8 @@ "slug": "monitor-nats-cockpit" }, { -<<<<<<< HEAD "label": "Delete a NATS account", "slug": "delete-account" -======= - "label": "Monitor Queues with Cockpit", - "slug": "monitor-queues-cockpit" ->>>>>>> 9860710e2 (feat(queues): add queues doc) } ], "label": "How to", @@ -4203,14 +4190,78 @@ { "items": [ { -<<<<<<< HEAD "label": "NATS API Reference", "slug": "https://www.scaleway.com/en/developers/api/messaging-and-queuing/nats-api/" }, { "label": "Using the NATS CLI", "slug": "nats-cli" -======= + } + ], + "label": "API/CLI", + "slug": "api-cli" + }, + { + "items": [ + { + "label": "NATS overview", + "slug": "nats-overview" + }, + { + "label": "Limitations", + "slug": "limitations" + } + ], + "label": "Additional Content", + "slug": "reference-content" + } + ], + "label": "NATS", + "slug": "nats" + }, + { + "items": [ + { + "label": "Overview", + "slug": "../queues" + }, + { + "label": "Concepts", + "slug": "concepts" + }, + { + "label": "Quickstart", + "slug": "quickstart" + }, + { + "label": "FAQ", + "slug": "faq" + }, + { + "items": [ + { + "label": "Create credentials", + "slug": "create-credentials" + }, + { + "label": "Manage credentials", + "slug": "manage-credentials" + }, + { + "label": "Create and manage queues", + "slug": "create-manage-queues" + }, + { + "label": "Monitor Queues with Cockpit", + "slug": "monitor-queues-cockpit" + } + ], + "label": "How to", + "slug": "how-to" + }, + { + "items": [ + { "label": "Queues API Reference", "slug": "https://www.scaleway.com/en/developers/api/messaging-and-queuing/sqs-api/" }, @@ -4225,7 +4276,6 @@ { "label": "Using Go, Python or Node.js with Queues", "slug": "python-node-queues" ->>>>>>> 9860710e2 (feat(queues): add queues doc) } ], "label": "API/CLI", @@ -4234,17 +4284,12 @@ { "items": [ { -<<<<<<< HEAD - "label": "NATS overview", - "slug": "nats-overview" -======= "label": "Queues overview", "slug": "queues-overview" }, { "label": "Queues - supported actions", "slug": "queues-support" ->>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "label": "Limitations", @@ -4255,13 +4300,8 @@ "slug": "reference-content" } ], -<<<<<<< HEAD - "label": "NATS", - "slug": "nats" -======= "label": "Queues", "slug": "queues" ->>>>>>> 9860710e2 (feat(queues): add queues doc) }, { "items": [ diff --git a/pages/queues/concepts.mdx b/pages/queues/concepts.mdx index 83714f1190..aa48d409f7 100644 --- a/pages/queues/concepts.mdx +++ b/pages/queues/concepts.mdx @@ -45,7 +45,7 @@ The message retention period is a setting that can be configured for a queue. It ## Messaging and Queuing -Previously, Scaleway Messaging and Queuing was a single product that grouped together three different messaging protocols. It has now been split into three distinct products: [NATS](#nats), [Queues](#queues), and [Topics and Events](#topics-and-events). +Previously, Scaleway Messaging and Queuing was a single product that grouped together three different messaging protocols. It has now been split into three distinct products: [NATS](/nats/), [Queues](#queues), and [Topics and Events](/topics-and-events/). ## Queue diff --git a/pages/nats/how-to/monitor-queues-cockpit.mdx b/pages/queues/how-to/monitor-queues-cockpit.mdx similarity index 100% rename from pages/nats/how-to/monitor-queues-cockpit.mdx rename to pages/queues/how-to/monitor-queues-cockpit.mdx From 1fe2b22c8caaa1b3be82be3926b39ead5f750f0a Mon Sep 17 00:00:00 2001 From: Rowena Jones <36301604+RoRoJ@users.noreply.github.com> Date: Tue, 8 Apr 2025 15:47:21 +0200 Subject: [PATCH 4/5] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Néda <87707325+nerda-codes@users.noreply.github.com> --- pages/queues/api-cli/python-node-queues.mdx | 2 +- pages/queues/concepts.mdx | 2 +- pages/queues/how-to/create-manage-queues.mdx | 2 +- pages/queues/reference-content/queues-overview.mdx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/queues/api-cli/python-node-queues.mdx b/pages/queues/api-cli/python-node-queues.mdx index 041ced87cd..5c016274f4 100644 --- a/pages/queues/api-cli/python-node-queues.mdx +++ b/pages/queues/api-cli/python-node-queues.mdx @@ -174,7 +174,7 @@ var sqsClient = new SQSClient({ The `endpoint_url` for Scaleway Queues is `https://sqs.mnq.fr-par.scaleway.com`. For the access and secret key values, use the credentials you [generated](/queues/how-to/create-credentials/) for Scaleway Queues. -Once connected, you can use any of the SDK's functions as long as they're [supported by Scaleway Queues](/queues/reference-content/sqs-support/). Refer to AWS's [official documentation](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html) for more information, or read on to see some examples. +Once connected, you can use any of the SDK's functions as long as they are [supported by Scaleway Queues](/queues/reference-content/sqs-support/). Refer to AWS's [official documentation](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html) for more information, or read on to see some examples. ### Create queue (NodeJS) diff --git a/pages/queues/concepts.mdx b/pages/queues/concepts.mdx index aa48d409f7..7a114025c8 100644 --- a/pages/queues/concepts.mdx +++ b/pages/queues/concepts.mdx @@ -25,7 +25,7 @@ Credentials give services and platforms access to Scaleway Queues, enabling them A **D**ead-**l**etter **q**ueue (DLQ), or **undelivered-message queue**, receives and holds messages that cannot be delivered to their destination queues. A DLQ must be of the same type (FIFO or Standard), in the same Project and in the same region as the queue(s) it serves. Each DLQ also has an associated parameter: [maximum receive count](#maximum-receive-count). A single queue can serve as dead-letter queue to multiple source queues. -If you designate a queue as a DLQ and its [storage quota](/organizations-and-projects/additional-content/organization-quotas/#queues) is reached, messages won't be redriven to the DLQ until enough free space is available again. If your DLQ is at its full quota, free up space by receiving and deleting messages from any queue in your Project. +If you designate a queue as a DLQ and its [storage quota](/organizations-and-projects/additional-content/organization-quotas/#queues) is reached, messages will not be re-driven to the DLQ until enough free space is available again. If your DLQ is at its full quota, free up space by receiving and deleting messages from any queue in your Project. ## FIFO diff --git a/pages/queues/how-to/create-manage-queues.mdx b/pages/queues/how-to/create-manage-queues.mdx index 8626f2c9fb..6344c6d39d 100644 --- a/pages/queues/how-to/create-manage-queues.mdx +++ b/pages/queues/how-to/create-manage-queues.mdx @@ -24,7 +24,7 @@ This page shows how to create and manage your queues with [Scaleway Queues](/que 1. Click **Queues** in the **Serverless** section of the Scaleway console side menu. -2. Click **Create queue**. The Queue creation wizard displays. +2. Click **Create queue**. The queue creation wizard displays. diff --git a/pages/queues/reference-content/queues-overview.mdx b/pages/queues/reference-content/queues-overview.mdx index 2961527b53..47aaea736c 100644 --- a/pages/queues/reference-content/queues-overview.mdx +++ b/pages/queues/reference-content/queues-overview.mdx @@ -49,7 +49,7 @@ All further actions such as sending messages can be done using the AWS CLI or AW The following resources may be helpful: - - [How to create a serverless scraping architecture, with Scaleway Queues, Serverless Functions and Managed Database](/tutorials/create-serverless-scraping/) + - [How to create a serverless scraping architecture, with Scaleway Queues, Serverless Functions and Managed Databases](/tutorials/create-serverless-scraping/) - [Official SQS Documentation](https://docs.aws.amazon.com/sqs/index.html) - Further information on supported API features: - [SQS](/queues/reference-content/queues-support/) From 7e454b700755523e9ad822b1412643fd3c7c7f14 Mon Sep 17 00:00:00 2001 From: Rowena Date: Wed, 9 Apr 2025 13:41:37 +0200 Subject: [PATCH 5/5] fix(queues): review comment --- pages/queues/faq.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/queues/faq.mdx b/pages/queues/faq.mdx index 418322a21c..0a8ec8ec05 100644 --- a/pages/queues/faq.mdx +++ b/pages/queues/faq.mdx @@ -23,7 +23,7 @@ Scaleway Queues is a product for creating managed message queues based on AWS's ## Is the Scaleway Queues gateway compatible with my application, framework or tool? -We currently implement the API endpoints listed [here](/queues/reference-content/sqs-support/), which makes Scaleway Queues compatible with the AWS SDK as well as many other tools and frameworks including KEDA and Symfony. Note that you need to specify both Regions and URL to ensure compatibility. +We currently implement the API endpoints listed [here](/queues/reference-content/sqs-support/), which makes Scaleway Queues compatible with the AWS SDK as well as many other tools and frameworks including [KEDA](https://keda.sh/) and [Symfony](https://symfony.com/). Note that you need to specify both Regions and URL to ensure compatibility. ## How is Scaleway Queues billed?