I am trying to make a POST call work from within Google Apps scripts into the V2 create API.
I have it working, but it doesn’t execute the user_data formatted in either cloud-init or just as shell commands. Nothing shows in the logs either. Any help is appreciated!
function createDroplet(){
var url = "https://api.digitalocean.com/v2/droplets";
var payload = {
"name":"NAMEOFHOST",
"region":"sfo2",
"size":"s-1vcpu-1gb",
"image":"ubuntu-18-04-x64",
"tags":["TAG1", "TAG2"],
"user_data": "curl -s https://Script.sh | sh"
};
var options = { "method": "post", "headers": { "Authorization": "Bearer " + DOToken, "Content-Type": "application/json"},"payload": JSON.stringify(payload) };
var response = UrlFetchApp.fetch(url, options);
}
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
I discovered that you can use the Unicode encoding to put the LF in the json, and all it well now. For those wondering the code is :
\u000A
so “user_data” needed to look like this
"user_data": "#!/bin/bash \u000A \
/usr/bin/curl -s https://SCRIPT | sh
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.